Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?



On Fri, Dec 14, 2007 at 06:02:06PM -0800, Andrew Morton wrote:
On Sat, 15 Dec 2007 01:09:41 +0000 Mel Gorman <mel@xxxxxxxxx> wrote:

On (13/12/07 14:29), Andrew Morton didst pronounce:
The simple way seems to be to malloc a large area, touch every page and
then look at the physical pages assigned ... they now mostly seem to be
descending in physical address.


OIC. -mm's /proc/pid/pagemap can be used to get the pfn's...


I tried using pagemap to verify the patch but it triggered BUG_ON
checks. Perhaps I am using the interface wrong but I would still not
expect it to break in this fashion. I tried 2.6.24-rc4-mm1, 2.6.24-rc5-mm1,
2.6.24-rc5 with just the maps4 patches applied and 2.6.23 with maps4 patches
applied. Each time I get errors like this;

[ 90.108315] BUG: sleeping function called from invalid context at include/asm/uaccess_32.h:457
[ 90.211227] in_atomic():1, irqs_disabled():0
[ 90.262251] no locks held by showcontiguous/2814.
[ 90.318475] Pid: 2814, comm: showcontiguous Not tainted 2.6.24-rc5 #1
[ 90.395344] [<c010522a>] show_trace_log_lvl+0x1a/0x30
[ 90.456948] [<c0105bb2>] show_trace+0x12/0x20
[ 90.510173] [<c0105eee>] dump_stack+0x6e/0x80
[ 90.563409] [<c01205b3>] __might_sleep+0xc3/0xe0
[ 90.619765] [<c02264fd>] copy_to_user+0x3d/0x60
[ 90.675153] [<c01b3e9c>] add_to_pagemap+0x5c/0x80
[ 90.732513] [<c01b43e8>] pagemap_pte_range+0x68/0xb0
[ 90.793010] [<c0175ed2>] walk_page_range+0x112/0x210
[ 90.853482] [<c01b47c6>] pagemap_read+0x176/0x220
[ 90.910863] [<c0182dc4>] vfs_read+0x94/0x150
[ 90.963058] [<c01832fd>] sys_read+0x3d/0x70
[ 91.014219] [<c0104262>] syscall_call+0x7/0xb

...

Just using cp to read the file is enough to cause problems but I included
a very basic program below that produces the BUG_ON checks. Is this a known
issue or am I using the interface incorrectly?

I'd say you're using it correctly but you've found a hitherto unknown bug.
On i386 highmem machines with CONFIG_HIGHPTE (at least) pte_offset_map()
takes kmap_atomic(), so pagemap_pte_range() can't do copy_to_user() as it
presently does.

Damn, I coulda sworn I fixed that.

--
Mathematics is the supreme nostalgia of our time.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: QUEUE_FLAG_CLUSTER: not working in 2.6.24 ?
    ... descending in physical address. ... I tried using pagemap to verify the patch but it triggered BUG_ON ...
    (Linux-Kernel)
  • Re: keyboard - was: Re: Linux 2.6.0-test4
    ... >> I was able to get the key unstuck by switching back and forth between ... I rebuild my kernel including your patch; ... I'll get back to you once I verify that the problem doesn't occur ... send the line "unsubscribe linux-kernel" in ...
    (Linux-Kernel)
  • Re: Windows patch mgmt.
    ... > I haven't used Windws update Server, but my understanding was this did ... > not allow you to verify the patch was installed. ... It allows only for deployment of patches. ...
    (Security-Basics)
  • Re: rpc.lockd brokenness (2)
    ... I'm unable to verify if the patch ... I do have a lockd hang, ... Can anybody else verify if the system hangs on pidfile_open when: ...
    (freebsd-stable)
  • RE: Microsoft Security Bulletin MS01-022
    ... Windows 2000 and Windows NT 4.0 Computers ... This patch updates the Msdaipp.dll file to version ... that you are not vulnerable to this issue, you should verify that you ... Subject: Microsoft Security Bulletin MS01-022 ...
    (Focus-Microsoft)

Loading