<?xml version="1.0"?>
<statsTarget><link>http://cia.vc/stats/author/geist</link><counters><counter name="forever" lastEventTime="1321142447" firstEventTime="1146549606">37</counter></counters><metadata></metadata><recentMessages><message>   <generator>     <name>git-notify script for CIA</name>   </generator>   <source>     <project>haiku</project>     <module>haiku</module>     <branch>master</branch>   </source>   <body>     <commit>       <revision>hrev43246</revision>       <author>geist</author>       <log>[build][OSX] revise the darwin test to darwin10 and darwin11, not a wildcard

As PulkoMandy pointed out on IRC, darwin10 and 11 (10.6 and 10.7) are at least partially 64bit, so
the test only applies there. When darwin12 comes out it'll have to be fixed.</log>       <url>http://cgit.haiku-os.org/haiku/commit/?id=6c6edeb</url>     </commit>   </body>   <timestamp>1321133116</timestamp> </message><message>   <generator>     <name>git-notify script for CIA</name>   </generator>   <source>     <project>haiku</project>     <module>haiku</module>     <branch>master</branch>   </source>   <body>     <commit>       <revision>hrev43245</revision>       <author>geist</author>       <log>Fix build on OSX Lion, which has apparently bumped the darwin version to darwin11</log>       <url>http://cgit.haiku-os.org/haiku/commit/?id=b2916b0</url>     </commit>   </body>   <timestamp>1321131670</timestamp> </message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>37108</revision><author>geist</author><log>SMP: remove the tracking of apic id -&gt; cpu id. Don't pass between bootloader and kernel.

Kernel doesn't use it, and it could be regenerated in the kernel if it did need it.

This also unlocks the apic range the bios can use. Previously the apic ids would have
to fit within 0..MAX_CPUS or it'd reject the cpu. Some boxes (mine in particular)
seem to sparsely populate the apic id so that the range is pretty large. </log><diffLines>90</diffLines><files><file action="modify">haiku/trunk/headers/private/kernel/arch/x86/arch_kernel_args.h</file><file action="modify">haiku/trunk/src/system/boot/platform/bios_ia32/smp.cpp</file><file action="modify">haiku/trunk/src/system/kernel/arch/x86/arch_smp.cpp</file></files></commit></body><timestamp>1276304515</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>36836</revision><author>geist</author><log>BOOT SMP: allow systems with a large number of cpus and/or sparse apic ids to actually boot

The old mechanism to route an apic id back to a cpu id is faulty, built with the assumption that
the bios will 'pack' the apic ids from 0-num_cpus. In systems that dont do that, the code would
randomly corrupt the bootloader. Fatal in this case.

This quick fix simply rejects all apic ids &gt;= MAX_CPUS (8). No way it would have worked before
if you had a box that started with &gt;= 8 or anything, so it shouldn't regress any existing system.

Better solution is to allow any apic id to exist (0-255).

On this particular box the ids (from lunix dmesg):
SRAT: PXM 0 -&gt; APIC 0 -&gt; Node 0
SRAT: PXM 1 -&gt; APIC 16 -&gt; Node 1
SRAT: PXM 0 -&gt; APIC 2 -&gt; Node 0
SRAT: PXM 0 -&gt; APIC 4 -&gt; Node 0
SRAT: PXM 0 -&gt; APIC 6 -&gt; Node 0
SRAT: PXM 1 -&gt; APIC 18 -&gt; Node 1
SRAT: PXM 1 -&gt; APIC 20 -&gt; Node 1
SRAT: PXM 1 -&gt; APIC 22 -&gt; Node 1
SRAT: PXM 0 -&gt; APIC 1 -&gt; Node 0
SRAT: PXM 0 -&gt; APIC 3 -&gt; Node 0
SRAT: PXM 0 -&gt; APIC 5 -&gt; Node 0
SRAT: PXM 0 -&gt; APIC 7 -&gt; Node 0
SRAT: PXM 1 -&gt; APIC 17 -&gt; Node 1
SRAT: PXM 1 -&gt; APIC 19 -&gt; Node 1
SRAT: PXM 1 -&gt; APIC 21 -&gt; Node 1
SRAT: PXM 1 -&gt; APIC 23 -&gt; Node 1   </log><diffLines>32</diffLines><files><file action="modify">haiku/trunk/src/system/boot/platform/bios_ia32/smp.cpp</file></files></commit></body><timestamp>1274068044</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>33192</revision><author>geist</author><log>Fix the CopySetHaikuRevision1 rule if you're building in a plain git
repository, not mirroed via git-svn. Calling git-svn on a plain
repository seems to cause it to go haywire. </log><diffLines>15</diffLines><files><file action="modify">haiku/trunk/build/jam/FileRules</file></files></commit></body><timestamp>1253391592</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>21477</revision><author>geist</author><log>re-enable kernel asserts.
Disabled by default, but all kernel devs are *highly* recommended to turn them on for your builds and see if it trips anything, and then fix it.  </log><diffLines>92</diffLines><files><file action="modify">haiku/trunk/headers/private/kernel/debug.h</file><file action="modify">haiku/trunk/headers/private/kernel/lock.h</file><file action="modify">haiku/trunk/src/system/kernel/heap.c</file></files></commit></body><timestamp>1182404268</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>21476</revision><author>geist</author><log>Fix a bug that was tripping an assert in the kernel module code.
When iterating through modules, the iterator was loading the module file, inserting it into the module image hash. Then, the first time get_module() was called on a module contained in the image, it was trying to load the image again. It probably actually was. Changed the logic to call get_module_image() which checks to see if it's already loaded.  </log><diffLines>51</diffLines><files><file action="modify">haiku/trunk/src/system/kernel/module.cpp</file></files></commit></body><timestamp>1182402439</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>21423</revision><author>geist</author><log>some make system work to get x86-64 linux compiles working:
-The biggest problem with linking host libraries (libbe_build and libroot_build) was not having the source files compiled with the -fPIC flag. As far as I can tell, we want to do this on all of the other host platforms as well, so hacked the jam files a bit to add it. 
Forgive me if I've committed more Jamfile sins.  </log><diffLines>122</diffLines><files><file action="modify">haiku/trunk/build/jam/BuildSetup</file><file action="modify">haiku/trunk/build/jam/MainBuildRules</file><file action="modify">haiku/trunk/src/build/libbe/app/Jamfile</file><file action="modify">haiku/trunk/src/build/libbe/interface/Jamfile</file><file action="modify">haiku/trunk/src/build/libbe/storage/Jamfile</file><file action="modify">haiku/trunk/src/build/libbe/support/Jamfile</file></files></commit></body><timestamp>1182023035</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>21407</revision><author>geist</author><log>fix the build on darwin:
-fs_shell was using weak aliases, which is apparently not supported on the darwin toolchain 
	(or it's supported in some different way)
-remove building strl* routines for some of the host tools, since that already exists in libSystem  </log><diffLines>77</diffLines><files><file action="modify">haiku/trunk/src/build/libroot/Jamfile</file><file action="modify">haiku/trunk/src/tools/fs_shell/driver_settings.cpp</file><file action="modify">haiku/trunk/src/tools/rc/Jamfile</file></files></commit></body><timestamp>1181798283</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>20732</revision><author>geist</author><log>set the function attribute on the asm memcpy.
This should fix the loader problem some folks were seeing on beos binaries.  </log><diffLines>19</diffLines><files><file action="modify">haiku/trunk/src/system/libroot/posix/string/arch/x86/arch_string.S</file></files></commit></body><timestamp>1176783587</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>20723</revision><author>geist</author><log>asm optimized user_memcpy(), which should help somewhat, since the old version was a byte-by-byte copy.  </log><diffLines>121</diffLines><files><file action="modify">haiku/trunk/src/system/kernel/arch/x86/arch_cpu.c</file><file action="modify">haiku/trunk/src/system/kernel/arch/x86/arch_x86.S</file><file action="modify">haiku/trunk/src/system/kernel/vm/vm.cpp</file></files></commit></body><timestamp>1176706119</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>20722</revision><author>geist</author><log>Turn the assembly optimized memcpy (simple rep movsd) back on for x86.  Had to hack around the make system a bit, and the result is pretty nasty, specifically due to the amount of places in the system where various targets poke their fingers into the libroot directory.
The solution is less than optimal, but should work for now.   </log><diffLines>261</diffLines><files><file action="modify">haiku/trunk/src/system/boot/Jamfile</file><file action="modify">haiku/trunk/src/system/kernel/Jamfile</file><file action="modify">haiku/trunk/src/system/kernel/lib/Jamfile</file><file action="modify">haiku/trunk/src/system/libroot/Jamfile</file><file action="modify">haiku/trunk/src/system/libroot/posix/string/Jamfile</file><file action="add">haiku/trunk/src/system/libroot/posix/string/arch/ppc/arch_string.S</file><file action="remove">haiku/trunk/src/system/libroot/posix/string/arch/ppc/libc.mk</file><file action="add">haiku/trunk/src/system/libroot/posix/string/arch/sh4/arch_string.S</file><file action="remove">haiku/trunk/src/system/libroot/posix/string/arch/sh4/libc.mk</file><file action="add">haiku/trunk/src/system/libroot/posix/string/arch/x86/arch_string.S</file><file action="remove">haiku/trunk/src/system/libroot/posix/string/arch/x86/memcpy.S</file><file action="modify">haiku/trunk/src/system/libroot/posix/string/memcpy.c</file><file action="modify">haiku/trunk/src/system/runtime_loader/Jamfile</file></files></commit></body><timestamp>1176704275</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>20720</revision><author>geist</author><log>fix a bug in _exit() that called the _IO_cleanup routine as if it was
a function pointer, which it isn't.
The mistake was probably made because there appears to be multiple stdio implementations
in the tree (BSD and glibc) so it's easy to look at the wrong code. Perhaps
we should clean that up.  </log><diffLines>17</diffLines><files><file action="modify">haiku/trunk/src/system/libroot/posix/unistd/_exit.c</file></files></commit></body><timestamp>1176693650</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>20269</revision><author>geist</author><log>this seems to solve the 'lock up on bootup on core 2' problem.
Basically, there was a pretty subtle race between the cpus in main where if the main cpu released the AP cpus and then before the AP cpus had a chance to run the boot cpu started creating the main thread (which causes smp ici messages to be created) the system would livelock, where the boot cpu waited forever for the AP cpu to acknowledge the ICI (for a TLB flush when creating the kernel stack).
Added smp_cpu_rendezvous(), used to synchronize all the cpus to a particular point, and used it a few times in main().
While i was at it i fixed another race that'll probably never happen, but what the hey. Make sure the kernel args are copied into kernel space by the main cpu before letting any other ones use it.  </log><diffLines>225</diffLines><files><file action="modify">haiku/trunk/headers/private/kernel/smp.h</file><file action="modify">haiku/trunk/src/system/kernel/main.c</file><file action="modify">haiku/trunk/src/system/kernel/smp.c</file><file action="modify">haiku/trunk/src/system/kernel/thread.c</file></files></commit></body><timestamp>1172736570</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>20268</revision><author>geist</author><log>the last smp change wasn't quite it. This time, make sure it maps the right physical page.  </log><diffLines>26</diffLines><files><file action="modify">haiku/trunk/src/system/kernel/arch/x86/arch_smp.c</file></files></commit></body><timestamp>1172735385</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>20265</revision><author>geist</author><log>the recent vm change uncovered a long standing latent pseudo-bug where the local and ioapic memory window were mapped into kernel space via create_area(), not map_physical_memory() like it should be. create_area() used to work fine, but now it's a big more picky about mapping memory it can't get a vm_page to (like stuff outside the range of RAM).  </log><diffLines>21</diffLines><files><file action="modify">haiku/trunk/src/system/kernel/arch/x86/arch_smp.c</file></files></commit></body><timestamp>1172730617</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>20227</revision><author>geist</author><log>When building binutils, build without -Werror. This was causing failures on my linux box due to silly warnings in binutils code.  </log><diffLines>15</diffLines><files><file action="modify">haiku/trunk/build/scripts/build_cross_tools</file></files></commit></body><timestamp>1172387205</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>20162</revision><author>geist</author><log>fix a kernel clobberer that showed up when running gcc. Was able to successfully build a hello world app with gcc after this.
The kernel arg logic was faulty, and wasn't using strlcpy properly (which returns the size of the src string, not the remaining size). Replaced it with a simpler, but less efficient series of strlcat()s.  </log><diffLines>34</diffLines><files><file action="modify">haiku/trunk/src/system/kernel/team.c</file></files></commit></body><timestamp>1171868260</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>20161</revision><author>geist</author><log>initial support for a commpage, which is a chunk of memory in high kernel space with user readonly permissions.
The first use is to let the kernel decide what the preferred syscall mechanism is at boot time and copy the
appropriate user space code there. Can be used for routines the kernel can decide best how to use (memcpy, some
timing routines, etc).  </log><diffLines>230</diffLines><files><file action="add">haiku/trunk/headers/os/kernel/arch/</file><file action="add">haiku/trunk/headers/os/kernel/arch/x86/</file><file action="add">haiku/trunk/headers/os/kernel/arch/x86/commpage.h</file><file action="add">haiku/trunk/headers/private/kernel/arch/x86/commpage.h</file><file action="modify">haiku/trunk/src/system/kernel/arch/x86/Jamfile</file><file action="modify">haiku/trunk/src/system/kernel/arch/x86/arch_cpu.c</file><file action="add">haiku/trunk/src/system/kernel/arch/x86/commpage.c</file><file action="add">haiku/trunk/src/system/kernel/arch/x86/syscall.S</file><file action="modify">haiku/trunk/src/system/libroot/os/arch/x86/syscalls.inc</file></files></commit></body><timestamp>1171845166</timestamp></message><message><generator><name>Python Subversion client for CIA</name><version>1.15</version></generator><source><project>OpenBeOS</project></source><body><commit><revision>20160</revision><author>geist</author><log>yet another fix for #1018, which has at this point blossomed into a reorg of how AP cpus are initialized.
the new cpuid stuff was apparently exacerbating an existing problem where various bits of low level
cpu code (specifically get_current_cpu) weren't really initialized before being used. Changed the
order to set up a fake set of threads to point each cpu at really early in boot to make sure that at
all points in code it can get the current 'thread' and thus the current cpu.
A probably better solution would be to have dr3 point to the current cpu which would then point to the 
current thread, but that has a race condition that would require an int disable, etc.  </log><diffLines>579</diffLines><files><file action="modify">haiku/trunk/headers/build/os/drivers/KernelExport.h</file><file action="modify">haiku/trunk/headers/os/drivers/KernelExport.h</file><file action="modify">haiku/trunk/headers/private/kernel/arch/cpu.h</file><file action="modify">haiku/trunk/headers/private/kernel/cpu.h</file><file action="modify">haiku/trunk/headers/private/kernel/thread.h</file><file action="modify">haiku/trunk/src/system/kernel/arch/ppc/arch_cpu.cpp</file><file action="modify">haiku/trunk/src/system/kernel/arch/x86/arch_cpu.c</file><file action="modify">haiku/trunk/src/system/kernel/cpu.c</file><file action="modify">haiku/trunk/src/system/kernel/main.c</file><file action="modify">haiku/trunk/src/system/kernel/smp.c</file><file action="modify">haiku/trunk/src/system/kernel/thread.c</file></files></commit></body><timestamp>1171843891</timestamp></message></recentMessages></statsTarget>
