
On Tue, Sep 8, 2009 at 12:47 AM, Neil Groves <neil@grovescomputing.com> wrote:
On Mon, Sep 7, 2009 at 10:19 PM, Edouard A. <edouard@fausse.info> wrote:
You appear to be assuming that the OS guarantees that it uses the lowest available virtual addresses. Would you please provide a link to the documentation? I was under the impression that the 8TB limit is merely a practical one since this was the maximum hardware specification available for testing.
The OS isn't floating around in virtual memory space! The layout is strict and doesn't change and of it's precisely and correctly documented in the driver developer's manual.
I would be alarmed if it was floating around. My concern was the perceived lack of documented guarantees. I was ignorant of any documentation with respect to the pointer ranges in the 64-bit Windows Operating Systems. My motivation was to clarify the safe useable ranges and ensure we weren't going to use undocumented implementation details by default.
The lock-free stack implementation in XP and Vista uses the high 21 bits of a 64-bit pointer for the ABA tag. Undocumented implementation detail, but at least it's not a complete mystery as to what should be safe for use :) -- Cory Nelson http://int64.org