Re: [PATCH 02/11] unpaged: private write VM_RESERVED

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

On Thu, Nov 17, 2005 at 02:41:02PM -0500, Dave Jones wrote:
> On Thu, Nov 17, 2005 at 07:30:04PM +0000, Hugh Dickins wrote:
>  > The PageReserved removal in 2.6.15-rc1 issued a "deprecated" message
>  > when you tried to mmap or mprotect MAP_PRIVATE PROT_WRITE a VM_RESERVED,
>  > and failed with -EACCES: because do_wp_page lacks the refinement to COW
>  > pages in those areas, nor do we expect to find anonymous pages in them;
>  > and it seemed just bloat to add code for handling such a peculiar case.
>  > But immediately it caused vbetool and ddcprobe (using lrmi) to fail.
>  > 
>  > So revert the "deprecated" messages, letting mmap and mprotect succeed.
>  > But leave do_wp_page's BUG_ON(vma->vm_flags & VM_RESERVED) in place
>  > until we've added the code to do it right: so this particular patch is
>  > only good if the app doesn't really need to write to that private area.
>  > 
>  > Dave Jones has changed vbetool & ddcprobe to use MAP_SHARED or PROT_READ
>  > just as well, but we don't want to force people to update their tools.
> 
> Actually Dave Miller did the detective work on that one, I just
> rebuilt some packages, and spread the good word :)

My Samsung X05 requires vbetool to resume from suspend-to-ram properly. Up
to 2.6.14, vbetool-0.3 worked fine; the PageReserved patch broke this (as
reported). Also the new package by Dave {Miller,Jones} didn't help and does
not help, even with these new 11 patches. Using the unmodified, original
vbetool-0.3, though, does work as expected, and I can resume back into X
again.

kernel			vbetool-0.3	vbetool-0.3+lrmi-patch
--------------------------------------------------------------
2.6.14			+		?
2.6.15-rc1		-		-
2.6.15-rc1+patches	+		-



However -- and this is the first time I'm experiencing this bug, I now got
this in my dmesg right after the last resume from sleep.


[4294994.302000] Restarting tasks... done
[4295188.230000] Bad page state at free_hot_cold_page (in process 'gaim', page c15eb020)
[4295188.230000] flags:0x80000414 mapping:00000000 mapcount:0 count:0
[4295188.230000] flags:0x80000414 mapping:00000000 mapcount:0 count:0
[4295188.230000] Backtrace:
[4295188.230000]  [<c0103b59>] dump_stack+0x15/0x17
[4295188.230000]  [<c0138f99>] bad_page+0x5b/0x92
[4295188.230000]  [<c013967b>] free_hot_cold_page+0x5c/0xfe
[4295188.230000]  [<c0139727>] free_hot_page+0xa/0xc
[4295188.230000]  [<c013eff0>] __page_cache_release+0x8f/0x94
[4295188.230000]  [<c013ecd3>] put_page+0x5b/0x5d
[4295188.230000]  [<c0148d69>] free_page_and_swap_cache+0x2c/0x2f
[4295188.230000]  [<c0142609>] zap_pte_range+0x1a1/0x214
[4295188.230000]  [<c014271a>] unmap_page_range+0x9e/0xe8
[4295188.230000]  [<c0142827>] unmap_vmas+0xc3/0x199
[4295188.230000]  [<c0145cf7>] unmap_region+0x77/0xf2
[4295188.230000]  [<c0145f91>] do_munmap+0xdd/0xf3
[4295188.230000]  [<c0145ff6>] sys_munmap+0x4f/0x68
[4295188.230000]  [<c0102cab>] sysenter_past_esp+0x54/0x75
[4295188.230000] Trying to fix it up, but a reboot is needed
[4295188.230000] Bad page state at free_hot_cold_page (in process 'gaim', page c15eb040)
[4295188.230000] flags:0x80000414 mapping:00000000 mapcount:0 count:0
[4295188.230000] Backtrace:
[4295188.230000]  [<c0103b59>] dump_stack+0x15/0x17
[4295188.230000]  [<c0138f99>] bad_page+0x5b/0x92
[4295188.230000]  [<c013967b>] free_hot_cold_page+0x5c/0xfe
[4295188.230000]  [<c0139727>] free_hot_page+0xa/0xc
[4295188.230000]  [<c013eff0>] __page_cache_release+0x8f/0x94
[4295188.230000]  [<c013ecd3>] put_page+0x5b/0x5d
[4295188.230000]  [<c0148d69>] free_page_and_swap_cache+0x2c/0x2f
[4295188.230000]  [<c0142609>] zap_pte_range+0x1a1/0x214
[4295188.230000]  [<c014271a>] unmap_page_range+0x9e/0xe8
[4295188.230000]  [<c0142827>] unmap_vmas+0xc3/0x199
[4295188.230000]  [<c0145cf7>] unmap_region+0x77/0xf2
[4295188.230000]  [<c0145f91>] do_munmap+0xdd/0xf3
[4295188.230000]  [<c0145ff6>] sys_munmap+0x4f/0x68
[4295188.230000]  [<c0102cab>] sysenter_past_esp+0x54/0x75
[4295188.230000] Trying to fix it up, but a reboot is needed
[4295188.230000] Bad page state at free_hot_cold_page (in process 'gaim', page c15eb060)
[4295188.230000] flags:0x80000414 mapping:00000000 mapcount:0 count:0
[4295188.230000] Backtrace:
[4295188.230000]  [<c0103b59>] dump_stack+0x15/0x17
[4295188.230000]  [<c0138f99>] bad_page+0x5b/0x92
[4295188.230000]  [<c013967b>] free_hot_cold_page+0x5c/0xfe
[4295188.230000]  [<c0139727>] free_hot_page+0xa/0xc
[4295188.230000]  [<c013eff0>] __page_cache_release+0x8f/0x94
[4295188.231000]  [<c013ecd3>] put_page+0x5b/0x5d

... and so on. Don't know whether this is related... and it isn't
reproducible.


	Dominik
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux