RE: Recent fix for pgd_addr_end

From: Peter Chubb <>
Date: 2005-03-18 10:17:48
>>>>> "Tony" == Tony Luck <Luck> writes:

>> In the recent fix to include/asm-ia64/pgtable.,h, the coode now
>> sign-extends the top of the pgdindex into the reserved region.
>> Are you sure this is correct?  Mosberger+Eranian says that these
>> bits must be zero: page 159, end of first paragraph, `What is
>> unusual is that the global-directory index is split into a 7-bit
>> low part (pgdi) and a 3 bit high part (pgdh) that covers bits 22 to
>> 39 and 61 to 63 respectively.  Bits 40 to 60 are unused and must be
>> 0.' (Of course the bit numbers here are for 8k pages, and have to
>> be adjusted).

Tony> I don't have the book handy, but the relevent chapter is online.
Tony> I see it saying:

Tony> "The unimplemented portion of the virtual address consists of
Tony> bits IMPL_VA_MSB + 1 through 60. Even though they are marked as
Tony> unimplemented, the architecture requires that the value in these
Tony> bits match the value in bit IMPL_VA_MSB. In other words, the
Tony> unimplemented bits must correspond to the sign-extended value of
Tony> the lower portion of the virtual address.  This restriction has
Tony> been put in place to ensure that software does not abuse
Tony> unimplemented bits for purposes such as type tag
Tony> bits. Otherwise, such software might break when running on a
Tony> machine that implements a larger number of virtual address
Tony> bits."

Tony> Figure 4.13 just below this text shows the hole in the middle of
Tony> the region that this creates.

That's the IA64 architecture defined unimplemented bits, which are
sign extended from the most significant implemented bit other than the
region ID in the virtual address.  Go onto the next page:

and look for figure 4.21 and its commentary.

Dr Peter Chubb  peterc AT
The technical we do immediately,  the political takes *forever*
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to
More majordomo info at
Received on Thu Mar 17 18:19:22 2005

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:37 EST