Re: Uncached memory allocator for ia64.

From: David Mosberger <davidm_at_napali.hpl.hp.com>
Date: 2004-09-30 00:24:47
>>>>> On Fri, 17 Sep 2004 09:34:58 -0500, Robin Holt <holt@sgi.com> said:

  Robin> I have done a little testing on the uncached.  I think the
  Robin> problem may be bigger than I originally expected.

  Robin> I made a simple driver.  On load, it allocated an entire
  Robin> granule and, I think, correctly did all the flushes called
  Robin> for in the processor manual including the PAL call.  A user
  Robin> could then mmap the entire chunk as uncached and work with
  Robin> it.  I did not get any sort of MCAs from this run.

OK.

  Robin> I then started the same app which referenced the first word
  Robin> of each page uncached.  I added a timer interrupt which
  Robin> scanned all the page structs on the node from which the
  Robin> granule was allocated and had a reference to the page inside
  Robin> of an impossible if statement (next to impossible as the
  Robin> machine would have to be up for a large number of years).
  Robin> This, I believe, resulted in the speculation of the cache
  Robin> line dirty.

So you had something along the lines of:

 if (never_really_true)
   *(char *) page_address(pg) = 42;

and you got an MCA when "pg" was something pointing to the uncached
memory area?  I don't see how that would be possible unless there
already were a WB TLB entry for the granule that contains
page_address(pg).

Can you make the test-program available?  I'd be interested in trying
it out on a local machine.

	--david
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Wed Sep 29 10:31:03 2004

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