mirror of https://gitee.com/openkylin/linux.git
drivers/block/zram/zram_drv.c: convert to using memset_l
zram was the motivation for creating memset_l(). Minchan Kim sees a 7% performance improvement on x86 with 100MB of non-zero deduplicatable data: perf stat -r 10 dd if=/dev/zram0 of=/dev/null vanilla: 0.232050465 seconds time elapsed ( +- 0.51% ) memset_l: 0.217219387 seconds time elapsed ( +- 0.07% ) Link: http://lkml.kernel.org/r/20170720184539.31609-7-willy@infradead.org Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com> Tested-by: Minchan Kim <minchan@kernel.org> Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com> Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Cc: David Miller <davem@davemloft.net> Cc: Ingo Molnar <mingo@elte.hu> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Matt Turner <mattst88@gmail.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Richard Henderson <rth@twiddle.net> Cc: Russell King <rmk+kernel@armlinux.org.uk> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
92ce4c3ea7
commit
48ad1abef4
|
@ -175,20 +175,11 @@ static inline void update_used_max(struct zram *zram,
|
|||
} while (old_max != cur_max);
|
||||
}
|
||||
|
||||
static inline void zram_fill_page(char *ptr, unsigned long len,
|
||||
static inline void zram_fill_page(void *ptr, unsigned long len,
|
||||
unsigned long value)
|
||||
{
|
||||
int i;
|
||||
unsigned long *page = (unsigned long *)ptr;
|
||||
|
||||
WARN_ON_ONCE(!IS_ALIGNED(len, sizeof(unsigned long)));
|
||||
|
||||
if (likely(value == 0)) {
|
||||
memset(ptr, 0, len);
|
||||
} else {
|
||||
for (i = 0; i < len / sizeof(*page); i++)
|
||||
page[i] = value;
|
||||
}
|
||||
memset_l(ptr, value, len / sizeof(unsigned long));
|
||||
}
|
||||
|
||||
static bool page_same_filled(void *ptr, unsigned long *element)
|
||||
|
|
Loading…
Reference in New Issue