* grub-core/kern/mm.c (grub_real_malloc): Decrease cut-off of moving the
pointer to 32K. This is the size of cache element which is the most common allocation >1K. This way the pointer is always around blocks of 32K and so we keep performance while decreasing fragmentation.
This commit is contained in:
parent
39ff43c579
commit
45bf8b3a75
2 changed files with 8 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2013-11-18 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* grub-core/kern/mm.c (grub_real_malloc): Decrease cut-off of moving the
|
||||||
|
pointer to 32K. This is the size of cache element which is the most
|
||||||
|
common allocation >1K. This way the pointer is always around blocks
|
||||||
|
of 32K and so we keep performance while decreasing fragmentation.
|
||||||
|
|
||||||
2013-11-18 Vladimir Serbinenko <phcoder@gmail.com>
|
2013-11-18 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* grub-core/kern/mm.c (grub_real_malloc): Don't update the pointer to
|
* grub-core/kern/mm.c (grub_real_malloc): Don't update the pointer to
|
||||||
|
|
|
@ -299,7 +299,7 @@ grub_real_malloc (grub_mm_header_t *first, grub_size_t n, grub_size_t align)
|
||||||
This will have side effect of fragmenting memory as small
|
This will have side effect of fragmenting memory as small
|
||||||
pieces before this will be un-used. */
|
pieces before this will be un-used. */
|
||||||
/* So do it only for chunks under 64K. */
|
/* So do it only for chunks under 64K. */
|
||||||
if (n < (0x10000 >> GRUB_MM_ALIGN_LOG2)
|
if (n < (0x8000 >> GRUB_MM_ALIGN_LOG2)
|
||||||
|| *first == p)
|
|| *first == p)
|
||||||
*first = q;
|
*first = q;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue