Re: [PATCH V5 0/4] Refactor do_wp_page, no functional change

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 22 Feb 2015 15:42:14 +0200 Shachar Raindel <raindel@xxxxxxxxxxxx> wrote:

> Currently do_wp_page contains 265 code lines. It also contains 9 goto
> statements, of which 5 are targeting labels which are not cleanup
> related. This makes the function extremely difficult to
> understand. The following patches are an attempt at breaking the
> function to its basic components, and making it easier to understand.
> 
> The patches are straight forward function extractions from
> do_wp_page. As we extract functions, we remove unneeded parameters and
> simplify the code as much as possible. However, the functionality is
> supposed to remain completely unchanged. The patches also attempt to
> document the functionality of each extracted function. In patch 2, we
> split the unlock logic to the contain logic relevant to specific needs
> of each use case, instead of having huge number of conditional
> decisions in a single unlock flow.

gcc-4.4.4:

   text    data     bss     dec     hex filename
  40898     186   13344   54428    d49c mm/memory.o-before
  41422     186   13456   55064    d718 mm/memory.o-after

gcc-4.8.2:

   text    data     bss     dec     hex filename
  35261   12118   13904   61283    ef63 mm/memory.o
  35646   12278   14032   61956    f204 mm/memory.o

The more recent compiler is more interesting but either way, that's a
somewhat disappointing increase in code size for refactoring of a
single function.

I had a brief poke around and couldn't find any obvious improvements
to make.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]