[lc-devel] UML swap bug fixed
Status: Beta
Brought to you by:
nitin_sf
From: Rodrigo S. de C. <rc...@im...> - 2002-01-11 10:48:08
|
Hi there, Finally Jeff seems to have fixed that bug which screwed up our vswap addresses. I think I can continue developing under UML :-) ----- Forwarded message from Jeff Dike <jd...@ka...> ----- Date: Thu, 10 Jan 2002 22:16:18 -0500 From: Jeff Dike <jd...@ka...> Subject: Re: [uml-devel] swap entry and newpage bit To: Rodrigo Souza de Castro <rc...@im...> Cc: use...@li... rc...@im... said: > The problem I noticed is that, when setting a pte to a swap entry, the > NEWPAGE bit is turned on to tell fix_range() that this address should > be unmapped. It turns out that, for swap adresses that are shared by > many ptes, the address is not unmapped and the NEWPAGE bit is not > turned off soon enough before any pte faults. Then, in fault handlers > (handle_pte_fault() and do_swap_page()), the pte has a wrong value, so > I can't find the page in swap cache. For example, if the swap cache > page is set to 0x3307c and the wrong pte is set to 0x3307e (due to > newpage bit), I won't be able to find it. This is an excellent description of the bug that I just spend 5 days chasing. Unfortunately, I didn't until recently (yesterday) understand enough of the swap code to tell whether you were describing something real or whether you were on crack. It is now fixed. pte_to_swp_entry now masks off the arch bits. Jeff ----- End forwarded message ----- -- Rodrigo S. de Castro <rc...@im...> |