Messages in this thread | | | From | Vlastimil Babka <> | Subject | Re: [PATCH next] mm/vmscan: __isolate_lru_page_prepare clean up | Date | Thu, 26 Nov 2020 16:23:42 +0100 |
| |
On 11/26/20 3:25 AM, Alex Shi wrote: > > > 在 2020/11/26 上午7:43, Andrew Morton 写道: >> On Tue, 24 Nov 2020 12:21:28 +0100 Vlastimil Babka <vbabka@suse.cz> wrote: >> >>> On 11/22/20 3:00 PM, Alex Shi wrote: >>>> Thanks a lot for all comments, I picked all up and here is the v3: >>>> >>>> From 167131dd106a96fd08af725df850e0da6ec899af Mon Sep 17 00:00:00 2001 >>>> From: Alex Shi <alex.shi@linux.alibaba.com> >>>> Date: Fri, 20 Nov 2020 14:49:16 +0800 >>>> Subject: [PATCH v3 next] mm/vmscan: __isolate_lru_page_prepare clean up >>>> >>>> The function just return 2 results, so use a 'switch' to deal with its >>>> result is unnecessary, and simplify it to a bool func as Vlastimil >>>> suggested. >>>> >>>> Also remove 'goto' by reusing list_move(), and take Matthew Wilcox's >>>> suggestion to update comments in function. >>> >>> I wouldn't mind if the goto stayed, but it's not repeating that much >>> without it (list_move() + continue, 3 times) so... >> >> I tried that, and .text became significantly larger, for reasons which >> I didn't investigate ;)
I found out that comparing whole .text doesn't often work as changes might be lost in alignment, or once in a while cross the alignment boundary and become exagerated. bloat-o-meter works nice though.
> Uh, BTW, with the gcc 8.3.1 and centos 7, goto or continue version has same size > on my side with or w/o DEBUG_LIST. But actually, this clean up patch could > add 10 bytes also with or w/o DEDBUG_LIST. > > Maybe related with different compiler?
gcc (SUSE Linux) 10.2.1 20201117 [revision 98ba03ffe0b9f37b4916ce6238fad754e00d720b]
./scripts/bloat-o-meter vmscan.o.before mm/vmscan.o add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-1 (-1) Function old new delta isolate_lru_pages 1125 1124 -1 Total: Before=57283, After=57282, chg -0.00%
Not surprising, as I'd expect the compiler to figure out by itself that list_move + continue repeats and can be unified. The reason for goto to stay would be rather readability (subjective).
> Thanks > Alex >
| |