Re: copy_page() on a kmalloc-ed page with DEBUG_SLAB enabled (was "zram: do not use copy_page with non-page alinged address")

From: Michal Hocko
Date: Tue Apr 18 2017 - 07:07:17 EST


On Tue 18-04-17 19:56:41, Sergey Senozhatsky wrote:
> On (04/18/17 09:33), Michal Hocko wrote:
> [..]
> > > Another approach is the API does normal thing for non-aligned prefix and
> > > tail space and fast thing for aligned space.
> > > Otherwise, it would be happy if the API has WARN_ON non-page SIZE aligned
> > > address.
> >
> > copy_page is a performance sensitive function and I believe that we do
> > those tricks exactly for this purpose.
>
> a wild thought,
>
> use
> #define copy_page(to,from) memcpy((to), (from), PAGE_SIZE)
>
> when DEBUG_SLAB is set? so arch copy_page() (if provided by arch)
> won't be affected otherwise.

Wouldn't this just paper over bugs? SLAB is not guaranteed to provide
page size aligned object AFAIR.
--
Michal Hocko
SUSE Labs