lkml.org 
[lkml]   [2004]   [Feb]   [19]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateFri, 20 Feb 2004 01:37:39 +0800
SubjectRe: Reserved page flaging of 2.4 kernel memory changed recently?
From"Michael Frank" <>
On Thu, 19 Feb 2004 17:14:55 +0100, Pavel Machek <pavel@suse.cz> wrote:

> Hi!
>
>> >>I actually would like to rename the bit PG_nosave to PG_donttouch ;)
>>
>> to make a point with regard to:
>>
>> no transfer of page contents during suspend/resume
>> no netdump
>> no debugger access without override
>>
>> ... but the name does not matter and we do not have to change it.
>>
>> >Its used for swsusp internal data, too...
>>
>> Yes of course - how else would swsusp run, but these data are also not
>> "touched"
>> during suspend and resume wrt transfer of page content.
>
> Yes. But I still want to be able to access swsusp internal data
> through debugger, and I want them in the netdump.
>
> That means that PG_nosave | PG_reserved indeed is "PG_donttouch", but
> PG_nosave has slightly different meaning.

Makes sense, but PG_reserved is used to keep VM out of these pages.

Can we have a seperate bit PG_donttouch which is set with PG_nosave
| PG_reserved in reserved/video/BIOS/Broken CPU areas?

This way

- debugger and netdump use PG_donttouch to prevent accesses
which might result in MCE's and CPU crashes.

- Swsusp uses PG_nosave.

- VM continues to use PG_reserved.

This is also a safe provision for hardware/driver changes.

As an example of using PG_nosave and PG_reserved Here are the actual
pageflags of a running 2.4.24 kernel using PG_nosave for
video/BIOS shown using crash utility:

Flags 4000 is PG_reserved
Flags 20000 is PG_nosave
By my proposal we would set PG_dontouch as well where PG_reserved
&& PG_nosave are set right now.

crash> kmem -p

PAGE PHYSICAL MAPPING INDEX CNT FLAGS

Interrupt vectors

c100001c 0 0 0 0 4000
c1000048 1000 0 0 0 4000
c1000074 2000 0 0 0 4000
c10000a0 3000 0 0 0 4000
Main memory

c10000cc 4000 deb641c4 3862 2 c8
c10000f8 5000 deb641c4 3861 2 c8
c1000124 6000 deb641c4 3860 2 c8
c1000150 7000 deb641c4 3859 2 c8
c100017c 8000 0 1 2 4c
[]
c1000ca8 49000 0 4 2 4c
c1000cd4 4a000 0 15 2 4c
c1000d00 4b000 0 0 2 4c
c1000d2c 4c000 0 4 2 4c
c1000d58 4d000 0 3 2 4c
c1000d84 4e000 0 7 2 4c
c1000db0 4f000 0 6 2 4c
c1000ddc 50000 cb35b6a4 669 2 4c
c1000e08 51000 cb35b6a4 668 2 4c
c1000e34 52000 cb35b6a4 667 2 4c
c1000e60 53000 cb35b6a4 666 2 4c
c1000e8c 54000 dee6e564 7085941 2 c0
c1000eb8 55000 cb35b6a4 604 2 4c
c1000ee4 56000 0 25308 1 108
c1000f10 57000 cb35b6a4 605 2 4c
c1000f3c 58000 cb35b6a4 606 2 4c
c1000f68 59000 0 0 2 4c
c1000f94 5a000 cb35b6a4 615 2 4c
[]
c1001a94 9a000 deb641c4 3818 2 c8
c1001ac0 9b000 deb641c4 3817 2 c8
c1001aec 9c000 deb641c4 3826 2 c8
c1001b18 9d000 deb641c4 3825 2 c8
c1001b44 9e000 cb35b8a4 1 2 4c
Donttouch reserved/video/BIOS area

c1001b70 9f000 0 0 0 24000
c1001b9c a0000 0 0 0 24000
c1001bc8 a1000 0 0 0 24000
c1001bf4 a2000 0 0 0 24000
c1001c20 a3000 0 0 0 24000
c1001c4c a4000 0 0 0 24000
c1001c78 a5000 0 0 0 24000
c1001ca4 a6000 0 0 0 24000
c1001cd0 a7000 0 0 0 24000
c1001cfc a8000 0 0 0 24000
c1001d28 a9000 0 0 0 24000
[]
c1002b14 fa000 0 0 0 24000
c1002b40 fb000 0 0 0 24000
c1002b6c fc000 0 0 0 24000
c1002b98 fd000 0 0 0 24000
c1002bc4 fe000 0 0 0 24000
c1002bf0 ff000 0 0 0 24000
Kernel

c1002c1c 100000 0 0 0 4000
c1002c48 101000 0 0 0 4000
c1002c74 102000 0 0 0 4000
c1002ca0 103000 0 0 0 4000
c1002ccc 104000 0 0 11875 4000
[]
c100b360 413000 0 0 0 4000
c100b38c 414000 0 0 0 4000
c100b3b8 415000 0 0 0 4000
Here is 120K ex init memory

c100b3e4 416000 deb641c4 3820 2 c8
c100b410 417000 deb641c4 3819 2 c8
c100b43c 418000 deb641c4 3866 2 c8
c100b468 419000 deb641c4 3865 2 c8
c100b494 41a000 deb641c4 3864 2 c8
c100b4c0 41b000 deb641c4 3863 2 c8
c100b4ec 41c000 deb641c4 3828 2 c8
c100b518 41d000 deb641c4 3827 2 c8
c100b544 41e000 0 0 1 100
c100b570 41f000 deb641c4 3807 2 c8
c100b59c 420000 cb35b6a4 3652 2 c8
c100b5c8 421000 cb35b6a4 3651 2 c8
c100b5f4 422000 cb35b6a4 3650 2 c8
c100b620 423000 cb35b6a4 3649 2 c8
c100b64c 424000 cb35b6a4 113 2 cc
c100b678 425000 0 0 1 100
c100b6a4 426000 0 0 1 5c
c100b6d0 427000 0 1 1 5c
c100b6fc 428000 0 25405 1 108
c100b728 429000 cb35b6a4 498 2 cc
c100b754 42a000 cb35b6a4 543 2 cc
c100b780 42b000 cb35b6a4 542 2 cc
c100b7ac 42c000 cb35b6a4 365 2 cc
c100b7d8 42d000 cb35b6a4 364 2 cc
c100b804 42e000 cb35b6a4 484 2 cc
c100b830 42f000 dee6e564 7077953 2 c0
c100b85c 430000 dee6e564 7078648 2 c0
c100b888 431000 cb35b6a4 508 2 cc
c100b8b4 432000 cb35b6a4 561 2 4c
c100b8e0 433000 cb35b6a4 560 2 4c
swsusp nosave area - 1 page

c100b90c 434000 0 0 0 24000

some more kernel data

c100b938 435000 0 0 0 4000
c100b964 436000 0 0 0 4000
c100b990 437000 0 0 0 4000
c100b9bc 438000 0 0 0 4000
c100b9e8 439000 0 0 0 4000
[]
c100c800 48b000 0 0 0 4000
c100c82c 48c000 0 0 0 4000

End of kernel data / main memory

c100c858 48d000 cb35b6a4 116 2 cc
c100c884 48e000 deb641c4 3822 2 c8
c100c8b0 48f000 deb641c4 3821 2 c8
c100c8dc 490000 cb35b6a4 117 2 cc
...
Regards
Michael
-
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/

\
 
 \ /
  Last update: 2005-03-22 14:01    [from the cache]
©2003-2009