John, 

Unfortunately not, as we is still need 4 additional instructions or some sort 
of memory 
barrier [ like mb() in Tru64 :) ] .

Regards,

Christoph

--
Christoph Hoffmann

On Aug 18, 2011, at 7:10 PM, John Baldwin wrote:

> On Thursday, August 18, 2011 12:30:24 pm Christoph Hoffmann wrote:
>> Hello John,
>> 
>> Thank you very much indeed for the hints.
>> 
>> I am under the impression that we are facing a problem with synchronisation 
>> of CPU local caches. I also wasn't able to find any problem with memory 
>> allocation.
>> 
>> This box is equipped with:
>> 
>> 1 Processor(s) detected, 4 total cores enabled, Hyperthreading is enabled    
>>    
>> Proc 1: Intel(R) Xeon(R) CPU E5630 @ 2.53GHz                                 
>>    
>> QPI Speed: 5.8 GT/s                                                          
>>    
>> 
>> Changing the order of execution in zfsboot.c main() function to
>> 
>> […]
>> int
>> main(void)
>> {
>> […]
>>    bios_getmem();
>> 
>>    if (high_heap_size > 0) {
>> […]
>>    bootinfo.bi_version = BOOTINFO_VERSION;
>>    bootinfo.bi_size = sizeof(bootinfo);
>>    bootinfo.bi_basemem = bios_basemem / 1024;
>>    bootinfo.bi_extmem = bios_extmem / 1024;
>>    bootinfo.bi_memsizes_valid++;
>> /*  bootinfo.bi_bios_dev = dsk->drive; */
>>    bootinfo.bi_bios_dev = *(uint8_t *)PTOV(ARGS);
> 
> What if you leave the order as-is but just change this one line to use 
> PTOV(ARGS) directly here instead of 'dsk->drive'?
> 
> -- 
> John Baldwin
> _______________________________________________
> [email protected] mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "[email protected]"

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[email protected]"

Reply via email to