Messages in this thread | | | Date | Thu, 27 Feb 2003 14:24:50 -0800 | From | Andrew Morton <> | Subject | Re: Rising io_load results Re: 2.5.63-mm1 |
| |
Dave McCracken <dmccr@us.ibm.com> wrote: > > > --On Thursday, February 27, 2003 13:44:03 -0800 Andrew Morton > <akpm@digeo.com> wrote: > > >> ... > >> Mapped: 4294923652 kB > > > > Well that's gotta hurt. This metric is used in making writeback > > decisions. Probably the objrmap patch. > > Oops. You're right. Here's a patch to fix it. >
Thanks.
I'm just looking at page_mapped(). It is now implicitly assuming that the architecture's representation of a zero-count atomic_t is all-bits-zero.
This is not true on sparc32 if some other CPU is in the middle of an atomic_foo() against that counter. Maybe the assumption is false on other architectures too.
So page_mapped() really should be performing an atomic_read() if that is appropriate to the particular page. I guess this involves testing page->mapping. Which is stable only when the page is locked or mapping->page_lock is held.
It appears that all page_mapped() callers are inside lock_page() at present, so a quick audit and addition of a comment would be appropriate there please.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |