Optimum Use of Global Paging Flag
Posted: Fri Feb 16, 2007 3:48 am
Hi All,
I am just making some optimisation changes to my paging mechanisms and was wondering about how best to optimise things.
As suggested in the IA32 manuals, I have got my kernel sitting in a single, 4MB global page. I am unsure, however, how much to make use of the 'global' flag. If I make too much use of this flag (such as if I automatically use it for any kernel heap pages allocated), presumably I will increase the chance of TLB misses when switching to user-space tasks.
Is it reasonable to assume that the use of this for the kernel code and kernel stack pages is optimal?
To give you some background information, I intend to do the standard 'each process in its own memory space, flat segmentation, kernel mapped in to every user-space' type thing. Generally, I am using 4kb pages for everything other than the kernel image itself.
Any thoughts appreciated,
Adam
I am just making some optimisation changes to my paging mechanisms and was wondering about how best to optimise things.
As suggested in the IA32 manuals, I have got my kernel sitting in a single, 4MB global page. I am unsure, however, how much to make use of the 'global' flag. If I make too much use of this flag (such as if I automatically use it for any kernel heap pages allocated), presumably I will increase the chance of TLB misses when switching to user-space tasks.
Is it reasonable to assume that the use of this for the kernel code and kernel stack pages is optimal?
To give you some background information, I intend to do the standard 'each process in its own memory space, flat segmentation, kernel mapped in to every user-space' type thing. Generally, I am using 4kb pages for everything other than the kernel image itself.
Any thoughts appreciated,
Adam