* Re: [PATCH v2 6/6] powerpc/pkeys: Deny read/write/execute by default
From: Florian Weimer @ 2018-06-19 13:19 UTC (permalink / raw)
To: Michael Ellerman, Ram Pai
Cc: linuxppc-dev, dave.hansen, aneesh.kumar, bsingharora, hbabu,
mhocko, bauerman, Ulrich.Weigand, luto, msuchanek
In-Reply-To: <87602fx84g.fsf@concordia.ellerman.id.au>
On 06/19/2018 02:39 PM, Michael Ellerman wrote:
> Ram Pai <linuxram@us.ibm.com> writes:
>> Deny all permissions on all keys, with some exceptions. pkey-0 must
>> allow all permissions, or else everything comes to a screaching halt.
>> Execute-only key must allow execute permission.
>
> Another ABI change.
>
> Are we calling this a bug fix?
Yes. Note that the default is configurable on x86 (default is deny), so
it's not really an ABI change as such IMHO.
Thanks,
Florian
^ permalink raw reply
* Re: [PATCH 3/3] m68k: remove unused set_clock_mmss() helpers
From: Greg Ungerer @ 2018-06-19 13:07 UTC (permalink / raw)
To: Arnd Bergmann, Paul Mackerras, Michael Ellerman,
Geert Uytterhoeven, Joshua Thompson
Cc: Mathieu Malaterre, Benjamin Herrenschmidt, linux-m68k,
linuxppc-dev, linux-kernel, y2038, Meelis Roos
In-Reply-To: <20180618140518.2920804-3-arnd@arndb.de>
Hi Arnd,
On 19/06/18 00:05, Arnd Bergmann wrote:
> Commit 397ac99c6cef ("m68k: remove dead timer code") removed set_rtc_mmss()
> because it was unused in 2012. However, this was itself the only user of the
> mach_set_clock_mmss() callback and the many implementations of that callback,
> which are equally unused.
>
> This removes all of those as well.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This looks good to me:
Acked-by: Greg Ungerer <gerg@linux-m68k.org>
Regards
Greg
> ---
> arch/m68k/apollo/config.c | 8 ------
> arch/m68k/atari/config.c | 5 ----
> arch/m68k/atari/time.c | 63 -----------------------------------------
> arch/m68k/bvme6000/config.c | 45 -----------------------------
> arch/m68k/include/asm/machdep.h | 1 -
> arch/m68k/kernel/setup_mm.c | 1 -
> arch/m68k/kernel/setup_no.c | 1 -
> arch/m68k/mac/config.c | 2 --
> arch/m68k/mac/misc.c | 16 -----------
> arch/m68k/mvme147/config.c | 7 -----
> arch/m68k/mvme16x/config.c | 8 ------
> arch/m68k/q40/config.c | 30 --------------------
> 12 files changed, 187 deletions(-)
>
> diff --git a/arch/m68k/apollo/config.c b/arch/m68k/apollo/config.c
> index b2a6bc63f8cd..aef8d42e078d 100644
> --- a/arch/m68k/apollo/config.c
> +++ b/arch/m68k/apollo/config.c
> @@ -31,7 +31,6 @@ extern void dn_sched_init(irq_handler_t handler);
> extern void dn_init_IRQ(void);
> extern u32 dn_gettimeoffset(void);
> extern int dn_dummy_hwclk(int, struct rtc_time *);
> -extern int dn_dummy_set_clock_mmss(unsigned long);
> extern void dn_dummy_reset(void);
> #ifdef CONFIG_HEARTBEAT
> static void dn_heartbeat(int on);
> @@ -156,7 +155,6 @@ void __init config_apollo(void)
> arch_gettimeoffset = dn_gettimeoffset;
> mach_max_dma_address = 0xffffffff;
> mach_hwclk = dn_dummy_hwclk; /* */
> - mach_set_clock_mmss = dn_dummy_set_clock_mmss; /* */
> mach_reset = dn_dummy_reset; /* */
> #ifdef CONFIG_HEARTBEAT
> mach_heartbeat = dn_heartbeat;
> @@ -240,12 +238,6 @@ int dn_dummy_hwclk(int op, struct rtc_time *t) {
>
> }
>
> -int dn_dummy_set_clock_mmss(unsigned long nowtime)
> -{
> - pr_info("set_clock_mmss\n");
> - return 0;
> -}
> -
> void dn_dummy_reset(void) {
>
> dn_serial_print("The end !\n");
> diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
> index 565c6f06ab0b..bd96702a1ad0 100644
> --- a/arch/m68k/atari/config.c
> +++ b/arch/m68k/atari/config.c
> @@ -81,9 +81,6 @@ extern void atari_sched_init(irq_handler_t);
> extern u32 atari_gettimeoffset(void);
> extern int atari_mste_hwclk (int, struct rtc_time *);
> extern int atari_tt_hwclk (int, struct rtc_time *);
> -extern int atari_mste_set_clock_mmss (unsigned long);
> -extern int atari_tt_set_clock_mmss (unsigned long);
> -
>
> /* ++roman: This is a more elaborate test for an SCC chip, since the plain
> * Medusa board generates DTACK at the SCC's standard addresses, but a SCC
> @@ -362,13 +359,11 @@ void __init config_atari(void)
> ATARIHW_SET(TT_CLK);
> pr_cont(" TT_CLK");
> mach_hwclk = atari_tt_hwclk;
> - mach_set_clock_mmss = atari_tt_set_clock_mmss;
> }
> if (hwreg_present(&mste_rtc.sec_ones)) {
> ATARIHW_SET(MSTE_CLK);
> pr_cont(" MSTE_CLK");
> mach_hwclk = atari_mste_hwclk;
> - mach_set_clock_mmss = atari_mste_set_clock_mmss;
> }
> if (!MACH_IS_MEDUSA && hwreg_present(&dma_wd.fdc_speed) &&
> hwreg_write(&dma_wd.fdc_speed, 0)) {
> diff --git a/arch/m68k/atari/time.c b/arch/m68k/atari/time.c
> index c549b48174ec..9cca64286464 100644
> --- a/arch/m68k/atari/time.c
> +++ b/arch/m68k/atari/time.c
> @@ -285,69 +285,6 @@ int atari_tt_hwclk( int op, struct rtc_time *t )
> return( 0 );
> }
>
> -
> -int atari_mste_set_clock_mmss (unsigned long nowtime)
> -{
> - short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60;
> - struct MSTE_RTC val;
> - unsigned char rtc_minutes;
> -
> - mste_read(&val);
> - rtc_minutes= val.min_ones + val.min_tens * 10;
> - if ((rtc_minutes < real_minutes
> - ? real_minutes - rtc_minutes
> - : rtc_minutes - real_minutes) < 30)
> - {
> - val.sec_ones = real_seconds % 10;
> - val.sec_tens = real_seconds / 10;
> - val.min_ones = real_minutes % 10;
> - val.min_tens = real_minutes / 10;
> - mste_write(&val);
> - }
> - else
> - return -1;
> - return 0;
> -}
> -
> -int atari_tt_set_clock_mmss (unsigned long nowtime)
> -{
> - int retval = 0;
> - short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60;
> - unsigned char save_control, save_freq_select, rtc_minutes;
> -
> - save_control = RTC_READ (RTC_CONTROL); /* tell the clock it's being set */
> - RTC_WRITE (RTC_CONTROL, save_control | RTC_SET);
> -
> - save_freq_select = RTC_READ (RTC_FREQ_SELECT); /* stop and reset prescaler */
> - RTC_WRITE (RTC_FREQ_SELECT, save_freq_select | RTC_DIV_RESET2);
> -
> - rtc_minutes = RTC_READ (RTC_MINUTES);
> - if (!(save_control & RTC_DM_BINARY))
> - rtc_minutes = bcd2bin(rtc_minutes);
> -
> - /* Since we're only adjusting minutes and seconds, don't interfere
> - with hour overflow. This avoids messing with unknown time zones
> - but requires your RTC not to be off by more than 30 minutes. */
> - if ((rtc_minutes < real_minutes
> - ? real_minutes - rtc_minutes
> - : rtc_minutes - real_minutes) < 30)
> - {
> - if (!(save_control & RTC_DM_BINARY))
> - {
> - real_seconds = bin2bcd(real_seconds);
> - real_minutes = bin2bcd(real_minutes);
> - }
> - RTC_WRITE (RTC_SECONDS, real_seconds);
> - RTC_WRITE (RTC_MINUTES, real_minutes);
> - }
> - else
> - retval = -1;
> -
> - RTC_WRITE (RTC_FREQ_SELECT, save_freq_select);
> - RTC_WRITE (RTC_CONTROL, save_control);
> - return retval;
> -}
> -
> /*
> * Local variables:
> * c-indent-level: 4
> diff --git a/arch/m68k/bvme6000/config.c b/arch/m68k/bvme6000/config.c
> index 2cfff4765040..143ee9fa3893 100644
> --- a/arch/m68k/bvme6000/config.c
> +++ b/arch/m68k/bvme6000/config.c
> @@ -41,7 +41,6 @@ static void bvme6000_get_model(char *model);
> extern void bvme6000_sched_init(irq_handler_t handler);
> extern u32 bvme6000_gettimeoffset(void);
> extern int bvme6000_hwclk (int, struct rtc_time *);
> -extern int bvme6000_set_clock_mmss (unsigned long);
> extern void bvme6000_reset (void);
> void bvme6000_set_vectors (void);
>
> @@ -113,7 +112,6 @@ void __init config_bvme6000(void)
> mach_init_IRQ = bvme6000_init_IRQ;
> arch_gettimeoffset = bvme6000_gettimeoffset;
> mach_hwclk = bvme6000_hwclk;
> - mach_set_clock_mmss = bvme6000_set_clock_mmss;
> mach_reset = bvme6000_reset;
> mach_get_model = bvme6000_get_model;
>
> @@ -305,46 +303,3 @@ int bvme6000_hwclk(int op, struct rtc_time *t)
>
> return 0;
> }
> -
> -/*
> - * Set the minutes and seconds from seconds value 'nowtime'. Fail if
> - * clock is out by > 30 minutes. Logic lifted from atari code.
> - * Algorithm is to wait for the 10ms register to change, and then to
> - * wait a short while, and then set it.
> - */
> -
> -int bvme6000_set_clock_mmss (unsigned long nowtime)
> -{
> - int retval = 0;
> - short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60;
> - unsigned char rtc_minutes, rtc_tenms;
> - volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE;
> - unsigned char msr = rtc->msr & 0xc0;
> - unsigned long flags;
> - volatile int i;
> -
> - rtc->msr = 0; /* Ensure clock accessible */
> - rtc_minutes = bcd2bin (rtc->bcd_min);
> -
> - if ((rtc_minutes < real_minutes
> - ? real_minutes - rtc_minutes
> - : rtc_minutes - real_minutes) < 30)
> - {
> - local_irq_save(flags);
> - rtc_tenms = rtc->bcd_tenms;
> - while (rtc_tenms == rtc->bcd_tenms)
> - ;
> - for (i = 0; i < 1000; i++)
> - ;
> - rtc->bcd_min = bin2bcd(real_minutes);
> - rtc->bcd_sec = bin2bcd(real_seconds);
> - local_irq_restore(flags);
> - }
> - else
> - retval = -1;
> -
> - rtc->msr = msr;
> -
> - return retval;
> -}
> -
> diff --git a/arch/m68k/include/asm/machdep.h b/arch/m68k/include/asm/machdep.h
> index 1605da48ebf2..49bd3266b4b1 100644
> --- a/arch/m68k/include/asm/machdep.h
> +++ b/arch/m68k/include/asm/machdep.h
> @@ -22,7 +22,6 @@ extern int (*mach_hwclk)(int, struct rtc_time*);
> extern unsigned int (*mach_get_ss)(void);
> extern int (*mach_get_rtc_pll)(struct rtc_pll_info *);
> extern int (*mach_set_rtc_pll)(struct rtc_pll_info *);
> -extern int (*mach_set_clock_mmss)(unsigned long);
> extern void (*mach_reset)( void );
> extern void (*mach_halt)( void );
> extern void (*mach_power_off)( void );
> diff --git a/arch/m68k/kernel/setup_mm.c b/arch/m68k/kernel/setup_mm.c
> index f35e3ebd6331..07244732eb41 100644
> --- a/arch/m68k/kernel/setup_mm.c
> +++ b/arch/m68k/kernel/setup_mm.c
> @@ -88,7 +88,6 @@ void (*mach_get_hardware_list) (struct seq_file *m);
> /* machine dependent timer functions */
> int (*mach_hwclk) (int, struct rtc_time*);
> EXPORT_SYMBOL(mach_hwclk);
> -int (*mach_set_clock_mmss) (unsigned long);
> unsigned int (*mach_get_ss)(void);
> int (*mach_get_rtc_pll)(struct rtc_pll_info *);
> int (*mach_set_rtc_pll)(struct rtc_pll_info *);
> diff --git a/arch/m68k/kernel/setup_no.c b/arch/m68k/kernel/setup_no.c
> index a98af1018201..3c53e4c366ac 100644
> --- a/arch/m68k/kernel/setup_no.c
> +++ b/arch/m68k/kernel/setup_no.c
> @@ -51,7 +51,6 @@ char __initdata command_line[COMMAND_LINE_SIZE];
>
> /* machine dependent timer functions */
> void (*mach_sched_init)(irq_handler_t handler) __initdata = NULL;
> -int (*mach_set_clock_mmss)(unsigned long);
> int (*mach_hwclk) (int, struct rtc_time*);
>
> /* machine dependent reboot functions */
> diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c
> index e522307db47c..da1aeb966474 100644
> --- a/arch/m68k/mac/config.c
> +++ b/arch/m68k/mac/config.c
> @@ -57,7 +57,6 @@ static unsigned long mac_orig_videoaddr;
> /* Mac specific timer functions */
> extern u32 mac_gettimeoffset(void);
> extern int mac_hwclk(int, struct rtc_time *);
> -extern int mac_set_clock_mmss(unsigned long);
> extern void iop_preinit(void);
> extern void iop_init(void);
> extern void via_init(void);
> @@ -158,7 +157,6 @@ void __init config_mac(void)
> mach_get_model = mac_get_model;
> arch_gettimeoffset = mac_gettimeoffset;
> mach_hwclk = mac_hwclk;
> - mach_set_clock_mmss = mac_set_clock_mmss;
> mach_reset = mac_reset;
> mach_halt = mac_poweroff;
> mach_power_off = mac_poweroff;
> diff --git a/arch/m68k/mac/misc.c b/arch/m68k/mac/misc.c
> index b399a0809e18..b0dda5cb9e48 100644
> --- a/arch/m68k/mac/misc.c
> +++ b/arch/m68k/mac/misc.c
> @@ -735,19 +735,3 @@ int mac_hwclk(int op, struct rtc_time *t)
> }
> return 0;
> }
> -
> -/*
> - * Set minutes/seconds in the hardware clock
> - */
> -
> -int mac_set_clock_mmss (unsigned long nowtime)
> -{
> - struct rtc_time now;
> -
> - mac_hwclk(0, &now);
> - now.tm_sec = nowtime % 60;
> - now.tm_min = (nowtime / 60) % 60;
> - mac_hwclk(1, &now);
> -
> - return 0;
> -}
> diff --git a/arch/m68k/mvme147/config.c b/arch/m68k/mvme147/config.c
> index f8a710fd84cd..adea549d240e 100644
> --- a/arch/m68k/mvme147/config.c
> +++ b/arch/m68k/mvme147/config.c
> @@ -40,7 +40,6 @@ static void mvme147_get_model(char *model);
> extern void mvme147_sched_init(irq_handler_t handler);
> extern u32 mvme147_gettimeoffset(void);
> extern int mvme147_hwclk (int, struct rtc_time *);
> -extern int mvme147_set_clock_mmss (unsigned long);
> extern void mvme147_reset (void);
>
>
> @@ -92,7 +91,6 @@ void __init config_mvme147(void)
> mach_init_IRQ = mvme147_init_IRQ;
> arch_gettimeoffset = mvme147_gettimeoffset;
> mach_hwclk = mvme147_hwclk;
> - mach_set_clock_mmss = mvme147_set_clock_mmss;
> mach_reset = mvme147_reset;
> mach_get_model = mvme147_get_model;
>
> @@ -164,8 +162,3 @@ int mvme147_hwclk(int op, struct rtc_time *t)
> }
> return 0;
> }
> -
> -int mvme147_set_clock_mmss (unsigned long nowtime)
> -{
> - return 0;
> -}
> diff --git a/arch/m68k/mvme16x/config.c b/arch/m68k/mvme16x/config.c
> index 4ffd9ef98de4..6ee36a5b528d 100644
> --- a/arch/m68k/mvme16x/config.c
> +++ b/arch/m68k/mvme16x/config.c
> @@ -46,7 +46,6 @@ static void mvme16x_get_model(char *model);
> extern void mvme16x_sched_init(irq_handler_t handler);
> extern u32 mvme16x_gettimeoffset(void);
> extern int mvme16x_hwclk (int, struct rtc_time *);
> -extern int mvme16x_set_clock_mmss (unsigned long);
> extern void mvme16x_reset (void);
>
> int bcd2int (unsigned char b);
> @@ -280,7 +279,6 @@ void __init config_mvme16x(void)
> mach_init_IRQ = mvme16x_init_IRQ;
> arch_gettimeoffset = mvme16x_gettimeoffset;
> mach_hwclk = mvme16x_hwclk;
> - mach_set_clock_mmss = mvme16x_set_clock_mmss;
> mach_reset = mvme16x_reset;
> mach_get_model = mvme16x_get_model;
> mach_get_hardware_list = mvme16x_get_hardware_list;
> @@ -411,9 +409,3 @@ int mvme16x_hwclk(int op, struct rtc_time *t)
> }
> return 0;
> }
> -
> -int mvme16x_set_clock_mmss (unsigned long nowtime)
> -{
> - return 0;
> -}
> -
> diff --git a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c
> index 71c0867ecf20..96810d91da2b 100644
> --- a/arch/m68k/q40/config.c
> +++ b/arch/m68k/q40/config.c
> @@ -43,7 +43,6 @@ extern void q40_sched_init(irq_handler_t handler);
> static u32 q40_gettimeoffset(void);
> static int q40_hwclk(int, struct rtc_time *);
> static unsigned int q40_get_ss(void);
> -static int q40_set_clock_mmss(unsigned long);
> static int q40_get_rtc_pll(struct rtc_pll_info *pll);
> static int q40_set_rtc_pll(struct rtc_pll_info *pll);
>
> @@ -175,7 +174,6 @@ void __init config_q40(void)
> mach_get_ss = q40_get_ss;
> mach_get_rtc_pll = q40_get_rtc_pll;
> mach_set_rtc_pll = q40_set_rtc_pll;
> - mach_set_clock_mmss = q40_set_clock_mmss;
>
> mach_reset = q40_reset;
> mach_get_model = q40_get_model;
> @@ -267,34 +265,6 @@ static unsigned int q40_get_ss(void)
> return bcd2bin(Q40_RTC_SECS);
> }
>
> -/*
> - * Set the minutes and seconds from seconds value 'nowtime'. Fail if
> - * clock is out by > 30 minutes. Logic lifted from atari code.
> - */
> -
> -static int q40_set_clock_mmss(unsigned long nowtime)
> -{
> - int retval = 0;
> - short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60;
> -
> - int rtc_minutes;
> -
> - rtc_minutes = bcd2bin(Q40_RTC_MINS);
> -
> - if ((rtc_minutes < real_minutes ?
> - real_minutes - rtc_minutes :
> - rtc_minutes - real_minutes) < 30) {
> - Q40_RTC_CTRL |= Q40_RTC_WRITE;
> - Q40_RTC_MINS = bin2bcd(real_minutes);
> - Q40_RTC_SECS = bin2bcd(real_seconds);
> - Q40_RTC_CTRL &= ~(Q40_RTC_WRITE);
> - } else
> - retval = -1;
> -
> - return retval;
> -}
> -
> -
> /* get and set PLL calibration of RTC clock */
> #define Q40_RTC_PLL_MASK ((1<<5)-1)
> #define Q40_RTC_PLL_SIGN (1<<5)
>
^ permalink raw reply
* Re: [PATCH 3/3] Revert "powerpc: fix build failure by disabling attribute-alias warning in pci_32"
From: Michael Ellerman @ 2018-06-19 13:01 UTC (permalink / raw)
To: Paul Burton, linux-kbuild
Cc: Mauro Carvalho Chehab, linux-mips, Arnd Bergmann, Ingo Molnar,
Matthew Wilcox, Thomas Gleixner, Douglas Anderson, Josh Poimboeuf,
Andrew Morton, Matthias Kaehlcke, He Zhe, Benjamin Herrenschmidt,
Michal Marek, Khem Raj, Christophe Leroy, Al Viro, Stafford Horne,
Gideon Israel Dsouza, Masahiro Yamada, Kees Cook, Heiko Carstens,
linux-kernel, Paul Mackerras, linuxppc-dev, Paul Burton
In-Reply-To: <20180616005323.7938-4-paul.burton@mips.com>
Paul Burton <paul.burton@mips.com> writes:
> With SYSCALL_DEFINEx() disabling -Wattribute-alias generically, there's
> no need to duplicate that for PowerPC's pciconfig_iobase syscall.
>
> This reverts commit 415520373975 ("powerpc: fix build failure by
> disabling attribute-alias warning in pci_32").
>
> Signed-off-by: Paul Burton <paul.burton@mips.com>
> ---
>
> arch/powerpc/kernel/pci_32.c | 4 ----
> 1 file changed, 4 deletions(-)
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
cheers
^ permalink raw reply
* Re: [PATCH] misc: ocxl: Change return type for fault handler
From: Michael Ellerman @ 2018-06-19 12:57 UTC (permalink / raw)
To: Souptick Joarder, Frederic Barrat
Cc: Arnd Bergmann, Sabyasachi Gupta, Greg KH, linux-kernel, fbarrat,
Matthew Wilcox, Andrew Donnellan, brajeswar.linux, linuxppc-dev
In-Reply-To: <CAFqt6zY=rpak3NGUMcCupvLp_RCwLMCtwfnBBjLfSc+U2vQ3OQ@mail.gmail.com>
Souptick Joarder <jrdr.linux@gmail.com> writes:
> On Thu, Jun 14, 2018 at 9:36 PM, Frederic Barrat <fbarrat@linux.ibm.com> =
wrote:
>> Le 11/06/2018 =C3=A0 22:29, Souptick Joarder a =C3=A9crit :
>>>
>>> Use new return type vm_fault_t for fault handler. For
>>> now, this is just documenting that the function returns
>>> a VM_FAULT value rather than an errno. Once all instances
>>> are converted, vm_fault_t will become a distinct type.
>>>
>>> Ref-> commit 1c8f422059ae ("mm: change return type to vm_fault_t")
>>>
>>> There is an existing bug when vm_insert_pfn() can return
>>> ENOMEM which was ignored and VM_FAULT_NOPAGE returned as
>>> default. The new inline vmf_insert_pfn() has removed
>>> this inefficiency by returning correct vm_fault_ type.
>>>
>>> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
>>> ---
>>
>>
>> Thanks!
>>
>> Tested and
>> Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
>
> Frederic, is this patch queued for 4.19 ?
Not yet, you're a bit early. 4.18-rc1 only came out the other day :)
Your patches are tracked here:
http://patchwork.ozlabs.org/project/linuxppc-dev/list/?submitter=3D67924
They should appear in 4.19 unless something conflicts with them.
cheers
^ permalink raw reply
* Re: [PATCH v2 3/6] powerpc/pkeys: fix calculation of total pkeys.
From: Michael Ellerman @ 2018-06-19 12:40 UTC (permalink / raw)
To: Ram Pai
Cc: linuxppc-dev, dave.hansen, aneesh.kumar, bsingharora, hbabu,
mhocko, bauerman, linuxram, Ulrich.Weigand, fweimer, luto,
msuchanek
In-Reply-To: <1528936144-6696-4-git-send-email-linuxram@us.ibm.com>
Ram Pai <linuxram@us.ibm.com> writes:
> Total number of pkeys calculation is off by 1. Fix it.
Oops.
Fixes: 4fb158f65ac5 ("powerpc: track allocation status of all pkeys")
Cc: stable@vger.kernel.org # v4.16+
cheers
^ permalink raw reply
* Re: [PATCH v2 4/6] powerpc/pkeys: Preallocate execute-only key
From: Michael Ellerman @ 2018-06-19 12:40 UTC (permalink / raw)
To: Ram Pai
Cc: linuxppc-dev, dave.hansen, aneesh.kumar, bsingharora, hbabu,
mhocko, bauerman, linuxram, Ulrich.Weigand, fweimer, luto,
msuchanek
In-Reply-To: <1528936144-6696-5-git-send-email-linuxram@us.ibm.com>
Ram Pai <linuxram@us.ibm.com> writes:
> execute-only key is allocated dynamically. This is a problem. When a
> thread implicitly creates a execute-only key, and resets UAMOR for that
> key, the UAMOR value does not percolate to all the other threads. Any
> other thread may ignorantly change the permissions on the key. This can
> cause the key to be not execute-only for that thread.
>
> Preallocate the execute-only key and ensure that no thread can change
> the permission of the key, by resetting the corresponding bit in UAMOR.
OK this is a non-ABI changing bug fix AFAICS.
I'll add:
Fixes: 5586cf61e108 ("powerpc: introduce execute-only pkey")
Cc: stable@vger.kernel.org # v4.16+
> diff --git a/arch/powerpc/mm/pkeys.c b/arch/powerpc/mm/pkeys.c
> index b681bec..1f2389f 100644
> --- a/arch/powerpc/mm/pkeys.c
> +++ b/arch/powerpc/mm/pkeys.c
> @@ -25,6 +25,7 @@
> #define IAMR_EX_BIT 0x1UL
> #define PKEY_REG_BITS (sizeof(u64)*8)
> #define pkeyshift(pkey) (PKEY_REG_BITS - ((pkey+1) * AMR_BITS_PER_PKEY))
> +#define EXECUTE_ONLY_KEY 2
Do we ensure we have at least 3 keys anywhere?
cheers
^ permalink raw reply
* Re: [PATCH v2 5/6] powerpc/pkeys: make protection key 0 less special
From: Michael Ellerman @ 2018-06-19 12:40 UTC (permalink / raw)
To: Ram Pai
Cc: linuxppc-dev, dave.hansen, aneesh.kumar, bsingharora, hbabu,
mhocko, bauerman, linuxram, Ulrich.Weigand, fweimer, luto,
msuchanek
In-Reply-To: <1528936144-6696-6-git-send-email-linuxram@us.ibm.com>
Ram Pai <linuxram@us.ibm.com> writes:
> Applications need the ability to associate an address-range with some
> key and latter revert to its initial default key. Pkey-0 comes close to
> providing this function but falls short, because the current
> implementation disallows applications to explicitly associate pkey-0 to
> the address range.
>
> Lets make pkey-0 less special and treat it almost like any other key.
> Thus it can be explicitly associated with any address range, and can be
> freed. This gives the application more flexibility and power. The
> ability to free pkey-0 must be used responsibily, since pkey-0 is
> associated with almost all address-range by default.
>
> Even with this change pkey-0 continues to be slightly more special
> from the following point of view.
> (a) it is implicitly allocated.
> (b) it is the default key assigned to any address-range.
> (c) its permissions cannot be modified by userspace.
>
> NOTE: (c) is specific to powerpc only. pkey-0 is associated by default
> with all pages including kernel pages, and pkeys are also active in
> kernel mode. If any permission is denied on pkey-0, the kernel running
> in the context of the application will be unable to operate.
We could fix that by saving/restoring the AMR when we come into the
kernel, and switching to a kernel-AMR with all keys accessible.
We'd then need to think about copy_to/from_user() gup etc. So maybe we
don't want to do that. But it's not set in stone.
Are we calling this a bug fix?
cheers
^ permalink raw reply
* Re: [PATCH v2 0/6] powerpc/pkeys: fixes to pkeys
From: Michael Ellerman @ 2018-06-19 12:40 UTC (permalink / raw)
To: Florian Weimer, Ram Pai
Cc: linuxppc-dev, dave.hansen, aneesh.kumar, bsingharora, hbabu,
mhocko, bauerman, Ulrich.Weigand, luto, msuchanek
In-Reply-To: <8812c879-5761-ef62-dd15-3ceef46d9653@redhat.com>
Florian Weimer <fweimer@redhat.com> writes:
> On 06/14/2018 02:28 AM, Ram Pai wrote:
>> Assortment of fixes to pkey.
>>
>> Patch 1 makes pkey consumable in multithreaded applications.
>>
>> Patch 2 fixes fork behavior to inherit the key attributes.
>>
>> Patch 3 A off-by-one bug made one key unusable. Fixes it.
>>
>> Patch 4 Execute-only key is preallocated.
>>
>> Patch 5 Makes pkey-0 less special.
>>
>> Patch 6 Deny by default permissions on all unallocated keys.
>>
>> Passes all selftests on powerpc. Also behavior verified to be correct
>> by Florian.
>>
>> Changelog:
>>
>> v2: . fixed merge conflict with upstream code.
>> . Add patch 6. Makes the behavior consistent
>> with that on x86.
>
> (Except signal handling, but I agree with Ram that the POWER behavior is
> the correct one.)
>
>> Ram Pai (6):
>> powerpc/pkeys: Enable all user-allocatable pkeys at init.
>> powerpc/pkeys: Save the pkey registers before fork
>> powerpc/pkeys: fix calculation of total pkeys.
>> powerpc/pkeys: Preallocate execute-only key
>> powerpc/pkeys: make protection key 0 less special
>> powerpc/pkeys: Deny read/write/execute by default
>
> I tested the whole series with the new selftests, with the printamr.c
> program I posted earlier, and the glibc test for pkey_alloc &c. The
> latter required some test fixes, but now passes as well. As far as I
> can tell, everything looks good now.
>
> Tested-By: Florian Weimer <fweimer@redhat.com>
Thanks. I'll add that to each patch I guess, if you're happy with that?
cheers
^ permalink raw reply
* Re: [PATCH v2 6/6] powerpc/pkeys: Deny read/write/execute by default
From: Michael Ellerman @ 2018-06-19 12:39 UTC (permalink / raw)
To: Ram Pai
Cc: linuxppc-dev, dave.hansen, aneesh.kumar, bsingharora, hbabu,
mhocko, bauerman, linuxram, Ulrich.Weigand, fweimer, luto,
msuchanek
In-Reply-To: <1528936144-6696-7-git-send-email-linuxram@us.ibm.com>
Ram Pai <linuxram@us.ibm.com> writes:
> Deny all permissions on all keys, with some exceptions. pkey-0 must
> allow all permissions, or else everything comes to a screaching halt.
> Execute-only key must allow execute permission.
Another ABI change.
Are we calling this a bug fix?
cheers
^ permalink raw reply
* Re: [PATCH v2 2/6] powerpc/pkeys: Save the pkey registers before fork
From: Michael Ellerman @ 2018-06-19 12:39 UTC (permalink / raw)
To: Ram Pai
Cc: linuxppc-dev, dave.hansen, aneesh.kumar, bsingharora, hbabu,
mhocko, bauerman, linuxram, Ulrich.Weigand, fweimer, luto,
msuchanek
In-Reply-To: <1528936144-6696-3-git-send-email-linuxram@us.ibm.com>
Ram Pai <linuxram@us.ibm.com> writes:
> When a thread forks the contents of AMR, IAMR, UAMOR registers in the
> newly forked thread are not inherited.
>
> Save the registers before forking, for content of those
> registers to be automatically copied into the new thread.
>
> CC: Michael Ellerman <mpe@ellerman.id.au>
> CC: Florian Weimer <fweimer@redhat.com>
> CC: Andy Lutomirski <luto@kernel.org>
> CC: Thiago Jung Bauermann <bauerman@linux.ibm.com>
> Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Again this is an ABI change but we'll call it a bug fix I guess.
I'll add:
Fixes: cf43d3b26452 ("powerpc: Enable pkey subsystem")
Cc: stable@vger.kernel.org # v4.16+
cheers
> diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
> index 9ef4aea..991d097 100644
> --- a/arch/powerpc/kernel/process.c
> +++ b/arch/powerpc/kernel/process.c
> @@ -583,6 +583,7 @@ static void save_all(struct task_struct *tsk)
> __giveup_spe(tsk);
>
> msr_check_and_clear(msr_all_available);
> + thread_pkey_regs_save(&tsk->thread);
> }
>
> void flush_all_to_thread(struct task_struct *tsk)
> --
> 1.7.1
^ permalink raw reply
* Re: [PATCH v2 1/6] powerpc/pkeys: Enable all user-allocatable pkeys at init.
From: Michael Ellerman @ 2018-06-19 12:39 UTC (permalink / raw)
To: Ram Pai
Cc: linuxppc-dev, dave.hansen, aneesh.kumar, bsingharora, hbabu,
mhocko, bauerman, linuxram, Ulrich.Weigand, fweimer, luto,
msuchanek
In-Reply-To: <1528936144-6696-2-git-send-email-linuxram@us.ibm.com>
Ram Pai <linuxram@us.ibm.com> writes:
> In a multithreaded application, a key allocated by one thread must
> be activate and usable on all threads.
>
> Currently this is not the case, because the UAMOR bits for all keys are
> disabled by default. When a new key is allocated in one thread, though
> the corresponding UAMOR bits for that thread get enabled, the UAMOR bits
> for all other existing threads continue to have their bits disabled.
> Other threads have no way to set permissions on the key, effectively
> making the key useless.
This all seems a bit strongly worded to me. It's arguable whether a key
should be usable by the thread that allocated it or all threads.
You could conceivably have a design where threads are blocked from using
a key until they're given permission to do so by the thread that
allocated the key.
But we're changing the behaviour to match x86 and because we don't have
an API to grant another thread access to a key. Right?
> Enable the UAMOR bits for all keys, at process creation. Since the
> contents of UAMOR are inherited at fork, all threads are capable of
> modifying the permissions on any key.
>
> BTW: changing the permission on unallocated keys has no effect, till
> those keys are not associated with any PTEs. The kernel will anyway
> disallow to association of unallocated keys with PTEs.
This is an ABI change, which is bad, but I guess we call it a bug fix
because things didn't really work previously?
I'll tag it:
Fixes: cf43d3b26452 ("powerpc: Enable pkey subsystem")
Cc: stable@vger.kernel.org # v4.16+
cheers
^ permalink raw reply
* Re: stacktrace.c:(.text+0x1b0): undefined reference to `.smp_send_safe_nmi_ipi'
From: Michael Ellerman @ 2018-06-19 11:58 UTC (permalink / raw)
To: Christophe LEROY, linuxppc-dev@lists.ozlabs.org, Nicholas Piggin
In-Reply-To: <0ae99ba5-e721-dada-8d94-b223e41977e9@c-s.fr>
Christophe LEROY <christophe.leroy@c-s.fr> writes:
> See http://kisskb.ellerman.id.au/kisskb/buildresult/13395345/ for details
>
> Seems like that function only exists when CONFIG_NMI_IPI is defined.
>
> Problem introduced by commit 5cc05910f26e6fd6da15f052f86f6150e4b91664
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/arch/powerpc/kernel/stacktrace.c?h=next-20180614&id=5cc05910f26e6fd6da15f052f86f6150e4b91664
>
>
> What do you recommend to fix that ?
It should just use CONFIG_NMI_IPI instead of CONFIG_PPC_BOOK3S_64 I
think.
I'll do a patch.
cheers
^ permalink raw reply
* Re: [PATCH] powerpc/mm/hash/4k: Free hugetlb page table caches correctly.
From: Michael Ellerman @ 2018-06-19 11:17 UTC (permalink / raw)
To: Aneesh Kumar K.V, npiggin, benh, paulus; +Cc: linuxppc-dev, Aneesh Kumar K.V
In-Reply-To: <20180614103152.7344-1-aneesh.kumar@linux.ibm.com>
"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com> writes:
> With 4k page size for hugetlb we allocate hugepage directories from its o=
n slab
> cache. With patch 0c4d26802 ("powerpc/book3s64/mm: Simplify the rcu callb=
ack for page table free")
> we missed to free these allocated hugepd tables.
>
> Update pgtable_free to handle hugetlb hugepd directory table.
>
> Fixes: 0c4d26802 ("powerpc/book3s64/mm: Simplify the rcu callback for pa=
ge table free")
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
> ---
> arch/powerpc/include/asm/book3s/32/pgalloc.h | 1 +
> .../include/asm/book3s/64/pgtable-4k.h | 21 +++++++++++++++++++
> .../include/asm/book3s/64/pgtable-64k.h | 9 ++++++++
> arch/powerpc/include/asm/book3s/64/pgtable.h | 5 +++++
> arch/powerpc/include/asm/nohash/32/pgalloc.h | 1 +
> arch/powerpc/include/asm/nohash/64/pgalloc.h | 1 +
> arch/powerpc/mm/hugetlbpage.c | 3 ++-
> arch/powerpc/mm/pgtable-book3s64.c | 12 +++++++++++
Fails with 4K=3Dy HUGETLBFS=3Dn:
arch/powerpc/mm/pgtable-book3s64.c:415:16: error: =E2=80=98H_16M_CACHE_IN=
DEX=E2=80=99 undeclared (first use in this function); did you mean =E2=80=
=98H_PUD_CACHE_INDEX=E2=80=99?
...
> diff --git a/arch/powerpc/mm/pgtable-book3s64.c b/arch/powerpc/mm/pgtable=
-book3s64.c
> index c1f4ca45c93a..468c3d83a2aa 100644
> --- a/arch/powerpc/mm/pgtable-book3s64.c
> +++ b/arch/powerpc/mm/pgtable-book3s64.c
> @@ -409,6 +409,18 @@ static inline void pgtable_free(void *table, int ind=
ex)
> case PUD_INDEX:
> kmem_cache_free(PGT_CACHE(PUD_CACHE_INDEX), table);
> break;
> +#ifdef CONFIG_PPC_4K_PAGES
> + /* 16M hugepd directory at pud level */
> + case HTLB_16M_INDEX:
> + BUILD_BUG_ON(H_16M_CACHE_INDEX <=3D 0);
> + kmem_cache_free(PGT_CACHE(H_16M_CACHE_INDEX), table);
> + break;
> + /* 16G hugepd directory at the pgd level */
> + case HTLB_16G_INDEX:
> + BUILD_BUG_ON(H_16G_CACHE_INDEX <=3D 0);
> + kmem_cache_free(PGT_CACHE(H_16G_CACHE_INDEX), table);
> + break;
> +#endif
Because this isn't protected by CONFIG_HUGETLBFS.
I assume this is correct?
diff --git a/arch/powerpc/mm/pgtable-book3s64.c b/arch/powerpc/mm/pgtable-b=
ook3s64.c
index 468c3d83a2aa..9b7007fd075e 100644
--- a/arch/powerpc/mm/pgtable-book3s64.c
+++ b/arch/powerpc/mm/pgtable-book3s64.c
@@ -409,7 +409,7 @@ static inline void pgtable_free(void *table, int index)
case PUD_INDEX:
kmem_cache_free(PGT_CACHE(PUD_CACHE_INDEX), table);
break;
-#ifdef CONFIG_PPC_4K_PAGES
+#if defined(CONFIG_PPC_4K_PAGES) && defined (CONFIG_HUGETLBFS)
/* 16M hugepd directory at pud level */
case HTLB_16M_INDEX:
BUILD_BUG_ON(H_16M_CACHE_INDEX <=3D 0);
cheers
^ permalink raw reply related
* Re: [PATCH 1/3] powerpc: mac: fix rtc read functions
From: Arnd Bergmann @ 2018-06-19 10:18 UTC (permalink / raw)
To: Andreas Schwab
Cc: Mathieu Malaterre, Paul Mackerras, Michael Ellerman,
Geert Uytterhoeven, funaho, Benjamin Herrenschmidt, Greg Ungerer,
linux-m68k, linuxppc-dev, LKML, y2038 Mailman List, Meelis Roos,
Alexandre Belloni
In-Reply-To: <87efh3hndq.fsf@igel.home>
On Mon, Jun 18, 2018 at 10:04 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> On Jun 18 2018, Mathieu Malaterre <malat@debian.org> wrote:
>
>> Sadly, trying again today does not work anymore. Adding some printk
>> just before WARN_ON:
>>
>> +printk(KERN_ERR " rtc DBG pmu_get_time1: %lld %d %lld \n", now,
>> RTC_OFFSET, now - RTC_OFFSET );
>> +printk(KERN_ERR " rtc DBG pmu_get_time2: %x %x %x %x %d \n",
>> req.reply[0], req.reply[1], req.reply[2], req.reply[3] ,
>> req.reply_len);
>>
>> leads to:
>>
>> [ 0.000000] rtc DBG pmu_get_time1: 14096662 2082844800 -2068748138
>> [ 0.000000] rtc DBG pmu_get_time2: 0 d7 19 16 4
>
> A good value would have 0xd7 in the first byte. The problem is that
> pmu_set_rtc_time is also broken, and leads to an invalid time value
> stored in the RTC. Since pmu_request is a varargs function passing
> values of type time64_t without casting won't work.
>
> You need to reset your RTC before you can continue.
>
> I think the right fix is to change nowtime in pmu_set_rtc_time and
> cuda_set_rtc_time back to unsigned int (or to u32).
Thanks for the additional analysis. I'll do it like you suggest and send
an updated patch.
Arnd
^ permalink raw reply
* Re: [PATCH v11 00/26] Speculative page faults
From: Haiyan Song @ 2018-06-19 9:16 UTC (permalink / raw)
To: Laurent Dufour
Cc: akpm@linux-foundation.org, mhocko@kernel.org,
peterz@infradead.org, kirill@shutemov.name, ak@linux.intel.com,
dave@stgolabs.net, jack@suse.cz, Matthew Wilcox,
khandual@linux.vnet.ibm.com, aneesh.kumar@linux.vnet.ibm.com,
benh@kernel.crashing.org, mpe@ellerman.id.au, paulus@samba.org,
Thomas Gleixner, Ingo Molnar, hpa@zytor.com, Will Deacon,
Sergey Senozhatsky, sergey.senozhatsky.work@gmail.com,
Andrea Arcangeli, Alexei Starovoitov, Wang, Kemi, Daniel Jordan,
David Rientjes, Jerome Glisse, Ganesh Mahendran, Minchan Kim,
Punit Agrawal, vinayak menon, Yang Shi,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
haren@linux.vnet.ibm.com, npiggin@gmail.com,
bsingharora@gmail.com, paulmck@linux.vnet.ibm.com, Tim Chen,
linuxppc-dev@lists.ozlabs.org, x86@kernel.org
In-Reply-To: <b13302ab-da49-22a4-eda7-68a6528fb9e7@linux.vnet.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 31691 bytes --]
On Mon, Jun 11, 2018 at 05:15:22PM +0200, Laurent Dufour wrote:
Hi Laurent,
For perf date tested on Intel 4s Skylake platform, here attached the compare result
between base and head commit in attachment, which include the perf-profile comparision information.
And also attached some perf-profile.json captured from test result for page_fault2 and page_fault3 for
checking the regression, thanks.
Best regards,
Haiyan Song
> Hi Haiyan,
>
> I don't have access to the same hardware you ran the test on, but I give a try
> to those test on a Power8 system (2 sockets, 5 cores/s, 8 threads/c, 80 CPUs 32G).
> I run each will-it-scale test 10 times and compute the average.
>
> test THP enabled 4.17.0-rc4-mm1 spf delta
> page_fault3_threads 2697.7 2683.5 -0.53%
> page_fault2_threads 170660.6 169574.1 -0.64%
> context_switch1_threads 6915269.2 6877507.3 -0.55%
> context_switch1_processes 6478076.2 6529493.5 0.79%
> rk1 243391.2 238527.5 -2.00%
>
> Test were launched with the arguments '-t 80 -s 5', only the average report is
> taken in account. Note that page size is 64K by default on ppc64.
>
> It would be nice if you could capture some perf data to figure out why the
> page_fault2/3 are showing such a performance regression.
>
> Thanks,
> Laurent.
>
> On 11/06/2018 09:49, Song, HaiyanX wrote:
> > Hi Laurent,
> >
> > Regression test for v11 patch serials have been run, some regression is found by LKP-tools (linux kernel performance)
> > tested on Intel 4s skylake platform. This time only test the cases which have been run and found regressions on
> > V9 patch serials.
> >
> > The regression result is sorted by the metric will-it-scale.per_thread_ops.
> > branch: Laurent-Dufour/Speculative-page-faults/20180520-045126
> > commit id:
> > head commit : a7a8993bfe3ccb54ad468b9f1799649e4ad1ff12
> > base commit : ba98a1cdad71d259a194461b3a61471b49b14df1
> > Benchmark: will-it-scale
> > Download link: https://github.com/antonblanchard/will-it-scale/tree/master
> >
> > Metrics:
> > will-it-scale.per_process_ops=processes/nr_cpu
> > will-it-scale.per_thread_ops=threads/nr_cpu
> > test box: lkp-skl-4sp1(nr_cpu=192,memory=768G)
> > THP: enable / disable
> > nr_task:100%
> >
> > 1. Regressions:
> >
> > a). Enable THP
> > testcase base change head metric
> > page_fault3/enable THP 10519 -20.5% 8368 will-it-scale.per_thread_ops
> > page_fault2/enalbe THP 8281 -18.8% 6728 will-it-scale.per_thread_ops
> > brk1/eanble THP 998475 -2.2% 976893 will-it-scale.per_process_ops
> > context_switch1/enable THP 223910 -1.3% 220930 will-it-scale.per_process_ops
> > context_switch1/enable THP 233722 -1.0% 231288 will-it-scale.per_thread_ops
> >
> > b). Disable THP
> > page_fault3/disable THP 10856 -23.1% 8344 will-it-scale.per_thread_ops
> > page_fault2/disable THP 8147 -18.8% 6613 will-it-scale.per_thread_ops
> > brk1/disable THP 957 -7.9% 881 will-it-scale.per_thread_ops
> > context_switch1/disable THP 237006 -2.2% 231907 will-it-scale.per_thread_ops
> > brk1/disable THP 997317 -2.0% 977778 will-it-scale.per_process_ops
> > page_fault3/disable THP 467454 -1.8% 459251 will-it-scale.per_process_ops
> > context_switch1/disable THP 224431 -1.3% 221567 will-it-scale.per_process_ops
> >
> > Notes: for the above values of test result, the higher is better.
> >
> > 2. Improvement: not found improvement based on the selected test cases.
> >
> >
> > Best regards
> > Haiyan Song
> > ________________________________________
> > From: owner-linux-mm@kvack.org [owner-linux-mm@kvack.org] on behalf of Laurent Dufour [ldufour@linux.vnet.ibm.com]
> > Sent: Monday, May 28, 2018 4:54 PM
> > To: Song, HaiyanX
> > Cc: akpm@linux-foundation.org; mhocko@kernel.org; peterz@infradead.org; kirill@shutemov.name; ak@linux.intel.com; dave@stgolabs.net; jack@suse.cz; Matthew Wilcox; khandual@linux.vnet.ibm.com; aneesh.kumar@linux.vnet.ibm.com; benh@kernel.crashing.org; mpe@ellerman.id.au; paulus@samba.org; Thomas Gleixner; Ingo Molnar; hpa@zytor.com; Will Deacon; Sergey Senozhatsky; sergey.senozhatsky.work@gmail.com; Andrea Arcangeli; Alexei Starovoitov; Wang, Kemi; Daniel Jordan; David Rientjes; Jerome Glisse; Ganesh Mahendran; Minchan Kim; Punit Agrawal; vinayak menon; Yang Shi; linux-kernel@vger.kernel.org; linux-mm@kvack.org; haren@linux.vnet.ibm.com; npiggin@gmail.com; bsingharora@gmail.com; paulmck@linux.vnet.ibm.com; Tim Chen; linuxppc-dev@lists.ozlabs.org; x86@kernel.org
> > Subject: Re: [PATCH v11 00/26] Speculative page faults
> >
> > On 28/05/2018 10:22, Haiyan Song wrote:
> >> Hi Laurent,
> >>
> >> Yes, these tests are done on V9 patch.
> >
> > Do you plan to give this V11 a run ?
> >
> >>
> >>
> >> Best regards,
> >> Haiyan Song
> >>
> >> On Mon, May 28, 2018 at 09:51:34AM +0200, Laurent Dufour wrote:
> >>> On 28/05/2018 07:23, Song, HaiyanX wrote:
> >>>>
> >>>> Some regression and improvements is found by LKP-tools(linux kernel performance) on V9 patch series
> >>>> tested on Intel 4s Skylake platform.
> >>>
> >>> Hi,
> >>>
> >>> Thanks for reporting this benchmark results, but you mentioned the "V9 patch
> >>> series" while responding to the v11 header series...
> >>> Were these tests done on v9 or v11 ?
> >>>
> >>> Cheers,
> >>> Laurent.
> >>>
> >>>>
> >>>> The regression result is sorted by the metric will-it-scale.per_thread_ops.
> >>>> Branch: Laurent-Dufour/Speculative-page-faults/20180316-151833 (V9 patch series)
> >>>> Commit id:
> >>>> base commit: d55f34411b1b126429a823d06c3124c16283231f
> >>>> head commit: 0355322b3577eeab7669066df42c550a56801110
> >>>> Benchmark suite: will-it-scale
> >>>> Download link:
> >>>> https://github.com/antonblanchard/will-it-scale/tree/master/tests
> >>>> Metrics:
> >>>> will-it-scale.per_process_ops=processes/nr_cpu
> >>>> will-it-scale.per_thread_ops=threads/nr_cpu
> >>>> test box: lkp-skl-4sp1(nr_cpu=192,memory=768G)
> >>>> THP: enable / disable
> >>>> nr_task: 100%
> >>>>
> >>>> 1. Regressions:
> >>>> a) THP enabled:
> >>>> testcase base change head metric
> >>>> page_fault3/ enable THP 10092 -17.5% 8323 will-it-scale.per_thread_ops
> >>>> page_fault2/ enable THP 8300 -17.2% 6869 will-it-scale.per_thread_ops
> >>>> brk1/ enable THP 957.67 -7.6% 885 will-it-scale.per_thread_ops
> >>>> page_fault3/ enable THP 172821 -5.3% 163692 will-it-scale.per_process_ops
> >>>> signal1/ enable THP 9125 -3.2% 8834 will-it-scale.per_process_ops
> >>>>
> >>>> b) THP disabled:
> >>>> testcase base change head metric
> >>>> page_fault3/ disable THP 10107 -19.1% 8180 will-it-scale.per_thread_ops
> >>>> page_fault2/ disable THP 8432 -17.8% 6931 will-it-scale.per_thread_ops
> >>>> context_switch1/ disable THP 215389 -6.8% 200776 will-it-scale.per_thread_ops
> >>>> brk1/ disable THP 939.67 -6.6% 877.33 will-it-scale.per_thread_ops
> >>>> page_fault3/ disable THP 173145 -4.7% 165064 will-it-scale.per_process_ops
> >>>> signal1/ disable THP 9162 -3.9% 8802 will-it-scale.per_process_ops
> >>>>
> >>>> 2. Improvements:
> >>>> a) THP enabled:
> >>>> testcase base change head metric
> >>>> malloc1/ enable THP 66.33 +469.8% 383.67 will-it-scale.per_thread_ops
> >>>> writeseek3/ enable THP 2531 +4.5% 2646 will-it-scale.per_thread_ops
> >>>> signal1/ enable THP 989.33 +2.8% 1016 will-it-scale.per_thread_ops
> >>>>
> >>>> b) THP disabled:
> >>>> testcase base change head metric
> >>>> malloc1/ disable THP 90.33 +417.3% 467.33 will-it-scale.per_thread_ops
> >>>> read2/ disable THP 58934 +39.2% 82060 will-it-scale.per_thread_ops
> >>>> page_fault1/ disable THP 8607 +36.4% 11736 will-it-scale.per_thread_ops
> >>>> read1/ disable THP 314063 +12.7% 353934 will-it-scale.per_thread_ops
> >>>> writeseek3/ disable THP 2452 +12.5% 2759 will-it-scale.per_thread_ops
> >>>> signal1/ disable THP 971.33 +5.5% 1024 will-it-scale.per_thread_ops
> >>>>
> >>>> Notes: for above values in column "change", the higher value means that the related testcase result
> >>>> on head commit is better than that on base commit for this benchmark.
> >>>>
> >>>>
> >>>> Best regards
> >>>> Haiyan Song
> >>>>
> >>>> ________________________________________
> >>>> From: owner-linux-mm@kvack.org [owner-linux-mm@kvack.org] on behalf of Laurent Dufour [ldufour@linux.vnet.ibm.com]
> >>>> Sent: Thursday, May 17, 2018 7:06 PM
> >>>> To: akpm@linux-foundation.org; mhocko@kernel.org; peterz@infradead.org; kirill@shutemov.name; ak@linux.intel.com; dave@stgolabs.net; jack@suse.cz; Matthew Wilcox; khandual@linux.vnet.ibm.com; aneesh.kumar@linux.vnet.ibm.com; benh@kernel.crashing.org; mpe@ellerman.id.au; paulus@samba.org; Thomas Gleixner; Ingo Molnar; hpa@zytor.com; Will Deacon; Sergey Senozhatsky; sergey.senozhatsky.work@gmail.com; Andrea Arcangeli; Alexei Starovoitov; Wang, Kemi; Daniel Jordan; David Rientjes; Jerome Glisse; Ganesh Mahendran; Minchan Kim; Punit Agrawal; vinayak menon; Yang Shi
> >>>> Cc: linux-kernel@vger.kernel.org; linux-mm@kvack.org; haren@linux.vnet.ibm.com; npiggin@gmail.com; bsingharora@gmail.com; paulmck@linux.vnet.ibm.com; Tim Chen; linuxppc-dev@lists.ozlabs.org; x86@kernel.org
> >>>> Subject: [PATCH v11 00/26] Speculative page faults
> >>>>
> >>>> This is a port on kernel 4.17 of the work done by Peter Zijlstra to handle
> >>>> page fault without holding the mm semaphore [1].
> >>>>
> >>>> The idea is to try to handle user space page faults without holding the
> >>>> mmap_sem. This should allow better concurrency for massively threaded
> >>>> process since the page fault handler will not wait for other threads memory
> >>>> layout change to be done, assuming that this change is done in another part
> >>>> of the process's memory space. This type page fault is named speculative
> >>>> page fault. If the speculative page fault fails because of a concurrency is
> >>>> detected or because underlying PMD or PTE tables are not yet allocating, it
> >>>> is failing its processing and a classic page fault is then tried.
> >>>>
> >>>> The speculative page fault (SPF) has to look for the VMA matching the fault
> >>>> address without holding the mmap_sem, this is done by introducing a rwlock
> >>>> which protects the access to the mm_rb tree. Previously this was done using
> >>>> SRCU but it was introducing a lot of scheduling to process the VMA's
> >>>> freeing operation which was hitting the performance by 20% as reported by
> >>>> Kemi Wang [2]. Using a rwlock to protect access to the mm_rb tree is
> >>>> limiting the locking contention to these operations which are expected to
> >>>> be in a O(log n) order. In addition to ensure that the VMA is not freed in
> >>>> our back a reference count is added and 2 services (get_vma() and
> >>>> put_vma()) are introduced to handle the reference count. Once a VMA is
> >>>> fetched from the RB tree using get_vma(), it must be later freed using
> >>>> put_vma(). I can't see anymore the overhead I got while will-it-scale
> >>>> benchmark anymore.
> >>>>
> >>>> The VMA's attributes checked during the speculative page fault processing
> >>>> have to be protected against parallel changes. This is done by using a per
> >>>> VMA sequence lock. This sequence lock allows the speculative page fault
> >>>> handler to fast check for parallel changes in progress and to abort the
> >>>> speculative page fault in that case.
> >>>>
> >>>> Once the VMA has been found, the speculative page fault handler would check
> >>>> for the VMA's attributes to verify that the page fault has to be handled
> >>>> correctly or not. Thus, the VMA is protected through a sequence lock which
> >>>> allows fast detection of concurrent VMA changes. If such a change is
> >>>> detected, the speculative page fault is aborted and a *classic* page fault
> >>>> is tried. VMA sequence lockings are added when VMA attributes which are
> >>>> checked during the page fault are modified.
> >>>>
> >>>> When the PTE is fetched, the VMA is checked to see if it has been changed,
> >>>> so once the page table is locked, the VMA is valid, so any other changes
> >>>> leading to touching this PTE will need to lock the page table, so no
> >>>> parallel change is possible at this time.
> >>>>
> >>>> The locking of the PTE is done with interrupts disabled, this allows
> >>>> checking for the PMD to ensure that there is not an ongoing collapsing
> >>>> operation. Since khugepaged is firstly set the PMD to pmd_none and then is
> >>>> waiting for the other CPU to have caught the IPI interrupt, if the pmd is
> >>>> valid at the time the PTE is locked, we have the guarantee that the
> >>>> collapsing operation will have to wait on the PTE lock to move forward.
> >>>> This allows the SPF handler to map the PTE safely. If the PMD value is
> >>>> different from the one recorded at the beginning of the SPF operation, the
> >>>> classic page fault handler will be called to handle the operation while
> >>>> holding the mmap_sem. As the PTE lock is done with the interrupts disabled,
> >>>> the lock is done using spin_trylock() to avoid dead lock when handling a
> >>>> page fault while a TLB invalidate is requested by another CPU holding the
> >>>> PTE.
> >>>>
> >>>> In pseudo code, this could be seen as:
> >>>> speculative_page_fault()
> >>>> {
> >>>> vma = get_vma()
> >>>> check vma sequence count
> >>>> check vma's support
> >>>> disable interrupt
> >>>> check pgd,p4d,...,pte
> >>>> save pmd and pte in vmf
> >>>> save vma sequence counter in vmf
> >>>> enable interrupt
> >>>> check vma sequence count
> >>>> handle_pte_fault(vma)
> >>>> ..
> >>>> page = alloc_page()
> >>>> pte_map_lock()
> >>>> disable interrupt
> >>>> abort if sequence counter has changed
> >>>> abort if pmd or pte has changed
> >>>> pte map and lock
> >>>> enable interrupt
> >>>> if abort
> >>>> free page
> >>>> abort
> >>>> ...
> >>>> }
> >>>>
> >>>> arch_fault_handler()
> >>>> {
> >>>> if (speculative_page_fault(&vma))
> >>>> goto done
> >>>> again:
> >>>> lock(mmap_sem)
> >>>> vma = find_vma();
> >>>> handle_pte_fault(vma);
> >>>> if retry
> >>>> unlock(mmap_sem)
> >>>> goto again;
> >>>> done:
> >>>> handle fault error
> >>>> }
> >>>>
> >>>> Support for THP is not done because when checking for the PMD, we can be
> >>>> confused by an in progress collapsing operation done by khugepaged. The
> >>>> issue is that pmd_none() could be true either if the PMD is not already
> >>>> populated or if the underlying PTE are in the way to be collapsed. So we
> >>>> cannot safely allocate a PMD if pmd_none() is true.
> >>>>
> >>>> This series add a new software performance event named 'speculative-faults'
> >>>> or 'spf'. It counts the number of successful page fault event handled
> >>>> speculatively. When recording 'faults,spf' events, the faults one is
> >>>> counting the total number of page fault events while 'spf' is only counting
> >>>> the part of the faults processed speculatively.
> >>>>
> >>>> There are some trace events introduced by this series. They allow
> >>>> identifying why the page faults were not processed speculatively. This
> >>>> doesn't take in account the faults generated by a monothreaded process
> >>>> which directly processed while holding the mmap_sem. This trace events are
> >>>> grouped in a system named 'pagefault', they are:
> >>>> - pagefault:spf_vma_changed : if the VMA has been changed in our back
> >>>> - pagefault:spf_vma_noanon : the vma->anon_vma field was not yet set.
> >>>> - pagefault:spf_vma_notsup : the VMA's type is not supported
> >>>> - pagefault:spf_vma_access : the VMA's access right are not respected
> >>>> - pagefault:spf_pmd_changed : the upper PMD pointer has changed in our
> >>>> back.
> >>>>
> >>>> To record all the related events, the easier is to run perf with the
> >>>> following arguments :
> >>>> $ perf stat -e 'faults,spf,pagefault:*' <command>
> >>>>
> >>>> There is also a dedicated vmstat counter showing the number of successful
> >>>> page fault handled speculatively. I can be seen this way:
> >>>> $ grep speculative_pgfault /proc/vmstat
> >>>>
> >>>> This series builds on top of v4.16-mmotm-2018-04-13-17-28 and is functional
> >>>> on x86, PowerPC and arm64.
> >>>>
> >>>> ---------------------
> >>>> Real Workload results
> >>>>
> >>>> As mentioned in previous email, we did non official runs using a "popular
> >>>> in memory multithreaded database product" on 176 cores SMT8 Power system
> >>>> which showed a 30% improvements in the number of transaction processed per
> >>>> second. This run has been done on the v6 series, but changes introduced in
> >>>> this new version should not impact the performance boost seen.
> >>>>
> >>>> Here are the perf data captured during 2 of these runs on top of the v8
> >>>> series:
> >>>> vanilla spf
> >>>> faults 89.418 101.364 +13%
> >>>> spf n/a 97.989
> >>>>
> >>>> With the SPF kernel, most of the page fault were processed in a speculative
> >>>> way.
> >>>>
> >>>> Ganesh Mahendran had backported the series on top of a 4.9 kernel and gave
> >>>> it a try on an android device. He reported that the application launch time
> >>>> was improved in average by 6%, and for large applications (~100 threads) by
> >>>> 20%.
> >>>>
> >>>> Here are the launch time Ganesh mesured on Android 8.0 on top of a Qcom
> >>>> MSM845 (8 cores) with 6GB (the less is better):
> >>>>
> >>>> Application 4.9 4.9+spf delta
> >>>> com.tencent.mm 416 389 -7%
> >>>> com.eg.android.AlipayGphone 1135 986 -13%
> >>>> com.tencent.mtt 455 454 0%
> >>>> com.qqgame.hlddz 1497 1409 -6%
> >>>> com.autonavi.minimap 711 701 -1%
> >>>> com.tencent.tmgp.sgame 788 748 -5%
> >>>> com.immomo.momo 501 487 -3%
> >>>> com.tencent.peng 2145 2112 -2%
> >>>> com.smile.gifmaker 491 461 -6%
> >>>> com.baidu.BaiduMap 479 366 -23%
> >>>> com.taobao.taobao 1341 1198 -11%
> >>>> com.baidu.searchbox 333 314 -6%
> >>>> com.tencent.mobileqq 394 384 -3%
> >>>> com.sina.weibo 907 906 0%
> >>>> com.youku.phone 816 731 -11%
> >>>> com.happyelements.AndroidAnimal.qq 763 717 -6%
> >>>> com.UCMobile 415 411 -1%
> >>>> com.tencent.tmgp.ak 1464 1431 -2%
> >>>> com.tencent.qqmusic 336 329 -2%
> >>>> com.sankuai.meituan 1661 1302 -22%
> >>>> com.netease.cloudmusic 1193 1200 1%
> >>>> air.tv.douyu.android 4257 4152 -2%
> >>>>
> >>>> ------------------
> >>>> Benchmarks results
> >>>>
> >>>> Base kernel is v4.17.0-rc4-mm1
> >>>> SPF is BASE + this series
> >>>>
> >>>> Kernbench:
> >>>> ----------
> >>>> Here are the results on a 16 CPUs X86 guest using kernbench on a 4.15
> >>>> kernel (kernel is build 5 times):
> >>>>
> >>>> Average Half load -j 8
> >>>> Run (std deviation)
> >>>> BASE SPF
> >>>> Elapsed Time 1448.65 (5.72312) 1455.84 (4.84951) 0.50%
> >>>> User Time 10135.4 (30.3699) 10148.8 (31.1252) 0.13%
> >>>> System Time 900.47 (2.81131) 923.28 (7.52779) 2.53%
> >>>> Percent CPU 761.4 (1.14018) 760.2 (0.447214) -0.16%
> >>>> Context Switches 85380 (3419.52) 84748 (1904.44) -0.74%
> >>>> Sleeps 105064 (1240.96) 105074 (337.612) 0.01%
> >>>>
> >>>> Average Optimal load -j 16
> >>>> Run (std deviation)
> >>>> BASE SPF
> >>>> Elapsed Time 920.528 (10.1212) 927.404 (8.91789) 0.75%
> >>>> User Time 11064.8 (981.142) 11085 (990.897) 0.18%
> >>>> System Time 979.904 (84.0615) 1001.14 (82.5523) 2.17%
> >>>> Percent CPU 1089.5 (345.894) 1086.1 (343.545) -0.31%
> >>>> Context Switches 159488 (78156.4) 158223 (77472.1) -0.79%
> >>>> Sleeps 110566 (5877.49) 110388 (5617.75) -0.16%
> >>>>
> >>>>
> >>>> During a run on the SPF, perf events were captured:
> >>>> Performance counter stats for '../kernbench -M':
> >>>> 526743764 faults
> >>>> 210 spf
> >>>> 3 pagefault:spf_vma_changed
> >>>> 0 pagefault:spf_vma_noanon
> >>>> 2278 pagefault:spf_vma_notsup
> >>>> 0 pagefault:spf_vma_access
> >>>> 0 pagefault:spf_pmd_changed
> >>>>
> >>>> Very few speculative page faults were recorded as most of the processes
> >>>> involved are monothreaded (sounds that on this architecture some threads
> >>>> were created during the kernel build processing).
> >>>>
> >>>> Here are the kerbench results on a 80 CPUs Power8 system:
> >>>>
> >>>> Average Half load -j 40
> >>>> Run (std deviation)
> >>>> BASE SPF
> >>>> Elapsed Time 117.152 (0.774642) 117.166 (0.476057) 0.01%
> >>>> User Time 4478.52 (24.7688) 4479.76 (9.08555) 0.03%
> >>>> System Time 131.104 (0.720056) 134.04 (0.708414) 2.24%
> >>>> Percent CPU 3934 (19.7104) 3937.2 (19.0184) 0.08%
> >>>> Context Switches 92125.4 (576.787) 92581.6 (198.622) 0.50%
> >>>> Sleeps 317923 (652.499) 318469 (1255.59) 0.17%
> >>>>
> >>>> Average Optimal load -j 80
> >>>> Run (std deviation)
> >>>> BASE SPF
> >>>> Elapsed Time 107.73 (0.632416) 107.31 (0.584936) -0.39%
> >>>> User Time 5869.86 (1466.72) 5871.71 (1467.27) 0.03%
> >>>> System Time 153.728 (23.8573) 157.153 (24.3704) 2.23%
> >>>> Percent CPU 5418.6 (1565.17) 5436.7 (1580.91) 0.33%
> >>>> Context Switches 223861 (138865) 225032 (139632) 0.52%
> >>>> Sleeps 330529 (13495.1) 332001 (14746.2) 0.45%
> >>>>
> >>>> During a run on the SPF, perf events were captured:
> >>>> Performance counter stats for '../kernbench -M':
> >>>> 116730856 faults
> >>>> 0 spf
> >>>> 3 pagefault:spf_vma_changed
> >>>> 0 pagefault:spf_vma_noanon
> >>>> 476 pagefault:spf_vma_notsup
> >>>> 0 pagefault:spf_vma_access
> >>>> 0 pagefault:spf_pmd_changed
> >>>>
> >>>> Most of the processes involved are monothreaded so SPF is not activated but
> >>>> there is no impact on the performance.
> >>>>
> >>>> Ebizzy:
> >>>> -------
> >>>> The test is counting the number of records per second it can manage, the
> >>>> higher is the best. I run it like this 'ebizzy -mTt <nrcpus>'. To get
> >>>> consistent result I repeated the test 100 times and measure the average
> >>>> result. The number is the record processes per second, the higher is the
> >>>> best.
> >>>>
> >>>> BASE SPF delta
> >>>> 16 CPUs x86 VM 742.57 1490.24 100.69%
> >>>> 80 CPUs P8 node 13105.4 24174.23 84.46%
> >>>>
> >>>> Here are the performance counter read during a run on a 16 CPUs x86 VM:
> >>>> Performance counter stats for './ebizzy -mTt 16':
> >>>> 1706379 faults
> >>>> 1674599 spf
> >>>> 30588 pagefault:spf_vma_changed
> >>>> 0 pagefault:spf_vma_noanon
> >>>> 363 pagefault:spf_vma_notsup
> >>>> 0 pagefault:spf_vma_access
> >>>> 0 pagefault:spf_pmd_changed
> >>>>
> >>>> And the ones captured during a run on a 80 CPUs Power node:
> >>>> Performance counter stats for './ebizzy -mTt 80':
> >>>> 1874773 faults
> >>>> 1461153 spf
> >>>> 413293 pagefault:spf_vma_changed
> >>>> 0 pagefault:spf_vma_noanon
> >>>> 200 pagefault:spf_vma_notsup
> >>>> 0 pagefault:spf_vma_access
> >>>> 0 pagefault:spf_pmd_changed
> >>>>
> >>>> In ebizzy's case most of the page fault were handled in a speculative way,
> >>>> leading the ebizzy performance boost.
> >>>>
> >>>> ------------------
> >>>> Changes since v10 (https://lkml.org/lkml/2018/4/17/572):
> >>>> - Accounted for all review feedbacks from Punit Agrawal, Ganesh Mahendran
> >>>> and Minchan Kim, hopefully.
> >>>> - Remove unneeded check on CONFIG_SPECULATIVE_PAGE_FAULT in
> >>>> __do_page_fault().
> >>>> - Loop in pte_spinlock() and pte_map_lock() when pte try lock fails
> >>>> instead
> >>>> of aborting the speculative page fault handling. Dropping the now
> >>>> useless
> >>>> trace event pagefault:spf_pte_lock.
> >>>> - No more try to reuse the fetched VMA during the speculative page fault
> >>>> handling when retrying is needed. This adds a lot of complexity and
> >>>> additional tests done didn't show a significant performance improvement.
> >>>> - Convert IS_ENABLED(CONFIG_NUMA) back to #ifdef due to build error.
> >>>>
> >>>> [1] http://linux-kernel.2935.n7.nabble.com/RFC-PATCH-0-6-Another-go-at-speculative-page-faults-tt965642.html#none
> >>>> [2] https://patchwork.kernel.org/patch/9999687/
> >>>>
> >>>>
> >>>> Laurent Dufour (20):
> >>>> mm: introduce CONFIG_SPECULATIVE_PAGE_FAULT
> >>>> x86/mm: define ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT
> >>>> powerpc/mm: set ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT
> >>>> mm: introduce pte_spinlock for FAULT_FLAG_SPECULATIVE
> >>>> mm: make pte_unmap_same compatible with SPF
> >>>> mm: introduce INIT_VMA()
> >>>> mm: protect VMA modifications using VMA sequence count
> >>>> mm: protect mremap() against SPF hanlder
> >>>> mm: protect SPF handler against anon_vma changes
> >>>> mm: cache some VMA fields in the vm_fault structure
> >>>> mm/migrate: Pass vm_fault pointer to migrate_misplaced_page()
> >>>> mm: introduce __lru_cache_add_active_or_unevictable
> >>>> mm: introduce __vm_normal_page()
> >>>> mm: introduce __page_add_new_anon_rmap()
> >>>> mm: protect mm_rb tree with a rwlock
> >>>> mm: adding speculative page fault failure trace events
> >>>> perf: add a speculative page fault sw event
> >>>> perf tools: add support for the SPF perf event
> >>>> mm: add speculative page fault vmstats
> >>>> powerpc/mm: add speculative page fault
> >>>>
> >>>> Mahendran Ganesh (2):
> >>>> arm64/mm: define ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT
> >>>> arm64/mm: add speculative page fault
> >>>>
> >>>> Peter Zijlstra (4):
> >>>> mm: prepare for FAULT_FLAG_SPECULATIVE
> >>>> mm: VMA sequence count
> >>>> mm: provide speculative fault infrastructure
> >>>> x86/mm: add speculative pagefault handling
> >>>>
> >>>> arch/arm64/Kconfig | 1 +
> >>>> arch/arm64/mm/fault.c | 12 +
> >>>> arch/powerpc/Kconfig | 1 +
> >>>> arch/powerpc/mm/fault.c | 16 +
> >>>> arch/x86/Kconfig | 1 +
> >>>> arch/x86/mm/fault.c | 27 +-
> >>>> fs/exec.c | 2 +-
> >>>> fs/proc/task_mmu.c | 5 +-
> >>>> fs/userfaultfd.c | 17 +-
> >>>> include/linux/hugetlb_inline.h | 2 +-
> >>>> include/linux/migrate.h | 4 +-
> >>>> include/linux/mm.h | 136 +++++++-
> >>>> include/linux/mm_types.h | 7 +
> >>>> include/linux/pagemap.h | 4 +-
> >>>> include/linux/rmap.h | 12 +-
> >>>> include/linux/swap.h | 10 +-
> >>>> include/linux/vm_event_item.h | 3 +
> >>>> include/trace/events/pagefault.h | 80 +++++
> >>>> include/uapi/linux/perf_event.h | 1 +
> >>>> kernel/fork.c | 5 +-
> >>>> mm/Kconfig | 22 ++
> >>>> mm/huge_memory.c | 6 +-
> >>>> mm/hugetlb.c | 2 +
> >>>> mm/init-mm.c | 3 +
> >>>> mm/internal.h | 20 ++
> >>>> mm/khugepaged.c | 5 +
> >>>> mm/madvise.c | 6 +-
> >>>> mm/memory.c | 612 +++++++++++++++++++++++++++++-----
> >>>> mm/mempolicy.c | 51 ++-
> >>>> mm/migrate.c | 6 +-
> >>>> mm/mlock.c | 13 +-
> >>>> mm/mmap.c | 229 ++++++++++---
> >>>> mm/mprotect.c | 4 +-
> >>>> mm/mremap.c | 13 +
> >>>> mm/nommu.c | 2 +-
> >>>> mm/rmap.c | 5 +-
> >>>> mm/swap.c | 6 +-
> >>>> mm/swap_state.c | 8 +-
> >>>> mm/vmstat.c | 5 +-
> >>>> tools/include/uapi/linux/perf_event.h | 1 +
> >>>> tools/perf/util/evsel.c | 1 +
> >>>> tools/perf/util/parse-events.c | 4 +
> >>>> tools/perf/util/parse-events.l | 1 +
> >>>> tools/perf/util/python.c | 1 +
> >>>> 44 files changed, 1161 insertions(+), 211 deletions(-)
> >>>> create mode 100644 include/trace/events/pagefault.h
> >>>>
> >>>> --
> >>>> 2.7.4
> >>>>
> >>>>
> >>>
> >>
> >
>
[-- Attachment #2: compare-result.txt --]
[-- Type: text/plain, Size: 183477 bytes --]
=========================================================================================
tbox_group/testcase/rootfs/kconfig/compiler/nr_task/thp_enabled/test/cpufreq_governor:
lkp-skl-4sp1/will-it-scale/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/100%/always/page_fault3/performance
commit:
ba98a1cdad71d259a194461b3a61471b49b14df1
a7a8993bfe3ccb54ad468b9f1799649e4ad1ff12
ba98a1cdad71d259 a7a8993bfe3ccb54ad468b9f17
---------------- --------------------------
fail:runs %reproduction fail:runs
| | |
44:3 -13% 43:3 perf-profile.calltrace.cycles-pp.error_entry
22:3 -6% 22:3 perf-profile.calltrace.cycles-pp.sync_regs.error_entry
44:3 -13% 44:3 perf-profile.children.cycles-pp.error_entry
21:3 -7% 21:3 perf-profile.self.cycles-pp.error_entry
%stddev %change %stddev
\ | \
10519 ± 3% -20.5% 8368 ± 6% will-it-scale.per_thread_ops
118098 +11.2% 131287 ± 2% will-it-scale.time.involuntary_context_switches
6.084e+08 ± 3% -20.4% 4.845e+08 ± 6% will-it-scale.time.minor_page_faults
7467 +5.0% 7841 will-it-scale.time.percent_of_cpu_this_job_got
44922 +5.0% 47176 will-it-scale.time.system_time
7126337 ± 3% -15.4% 6025689 ± 6% will-it-scale.time.voluntary_context_switches
91905646 -1.3% 90673935 will-it-scale.workload
27.15 ± 6% -8.7% 24.80 ± 10% boot-time.boot
2516213 ± 6% +8.3% 2726303 interrupts.CAL:Function_call_interrupts
388.00 ± 9% +60.2% 621.67 ± 20% irq_exception_noise.softirq_nr
11.28 ± 2% -1.9 9.37 ± 4% mpstat.cpu.idle%
10065 ±140% +243.4% 34559 ± 4% numa-numastat.node0.other_node
18739 -11.6% 16573 ± 3% uptime.idle
29406 ± 2% -11.8% 25929 ± 5% vmstat.system.cs
329614 ± 8% +17.0% 385618 ± 10% meminfo.DirectMap4k
237851 +21.2% 288160 ± 5% meminfo.Inactive
237615 +21.2% 287924 ± 5% meminfo.Inactive(anon)
7917847 -10.7% 7071860 softirqs.RCU
4784181 ± 3% -14.5% 4089039 ± 4% softirqs.SCHED
45666107 ± 7% +12.9% 51535472 ± 3% softirqs.TIMER
2.617e+09 ± 2% -13.9% 2.253e+09 ± 6% cpuidle.C1E.time
6688774 ± 2% -12.8% 5835101 ± 5% cpuidle.C1E.usage
1.022e+10 ± 2% -18.0% 8.376e+09 ± 3% cpuidle.C6.time
13440993 ± 2% -16.3% 11243794 ± 4% cpuidle.C6.usage
54781 ± 16% +37.5% 75347 ± 12% numa-meminfo.node0.Inactive
54705 ± 16% +37.7% 75347 ± 12% numa-meminfo.node0.Inactive(anon)
52522 +35.0% 70886 ± 6% numa-meminfo.node2.Inactive
52443 +34.7% 70653 ± 6% numa-meminfo.node2.Inactive(anon)
31046 ± 6% +30.3% 40457 ± 11% numa-meminfo.node2.SReclaimable
58563 +21.1% 70945 ± 6% proc-vmstat.nr_inactive_anon
58564 +21.1% 70947 ± 6% proc-vmstat.nr_zone_inactive_anon
69701118 -1.2% 68842151 proc-vmstat.pgalloc_normal
2.765e+10 -1.3% 2.729e+10 proc-vmstat.pgfault
69330418 -1.2% 68466824 proc-vmstat.pgfree
118098 +11.2% 131287 ± 2% time.involuntary_context_switches
6.084e+08 ± 3% -20.4% 4.845e+08 ± 6% time.minor_page_faults
7467 +5.0% 7841 time.percent_of_cpu_this_job_got
44922 +5.0% 47176 time.system_time
7126337 ± 3% -15.4% 6025689 ± 6% time.voluntary_context_switches
13653 ± 16% +33.5% 18225 ± 12% numa-vmstat.node0.nr_inactive_anon
13651 ± 16% +33.5% 18224 ± 12% numa-vmstat.node0.nr_zone_inactive_anon
13069 ± 3% +30.1% 17001 ± 4% numa-vmstat.node2.nr_inactive_anon
134.67 ± 42% -49.5% 68.00 ± 31% numa-vmstat.node2.nr_mlock
7758 ± 6% +30.4% 10112 ± 11% numa-vmstat.node2.nr_slab_reclaimable
13066 ± 3% +30.1% 16998 ± 4% numa-vmstat.node2.nr_zone_inactive_anon
1039 ± 11% -17.5% 857.33 slabinfo.Acpi-ParseExt.active_objs
1039 ± 11% -17.5% 857.33 slabinfo.Acpi-ParseExt.num_objs
2566 ± 6% -8.8% 2340 ± 5% slabinfo.biovec-64.active_objs
2566 ± 6% -8.8% 2340 ± 5% slabinfo.biovec-64.num_objs
898.33 ± 3% -9.5% 813.33 ± 3% slabinfo.kmem_cache_node.active_objs
1066 ± 2% -8.0% 981.33 ± 3% slabinfo.kmem_cache_node.num_objs
1940 +2.3% 1984 turbostat.Avg_MHz
6679037 ± 2% -12.7% 5830270 ± 5% turbostat.C1E
2.25 ± 2% -0.3 1.94 ± 6% turbostat.C1E%
13418115 -16.3% 11234510 ± 4% turbostat.C6
8.75 ± 2% -1.6 7.18 ± 3% turbostat.C6%
5.99 ± 2% -14.4% 5.13 ± 4% turbostat.CPU%c1
5.01 ± 3% -20.1% 4.00 ± 4% turbostat.CPU%c6
1.77 ± 3% -34.7% 1.15 turbostat.Pkg%pc2
1.378e+13 +1.2% 1.394e+13 perf-stat.branch-instructions
0.98 -0.0 0.94 perf-stat.branch-miss-rate%
1.344e+11 -2.3% 1.313e+11 perf-stat.branch-misses
1.076e+11 -1.8% 1.057e+11 perf-stat.cache-misses
2.258e+11 -2.1% 2.21e+11 perf-stat.cache-references
17788064 ± 2% -11.9% 15674207 ± 6% perf-stat.context-switches
2.241e+14 +2.4% 2.294e+14 perf-stat.cpu-cycles
1.929e+13 +2.2% 1.971e+13 perf-stat.dTLB-loads
4.01 -0.2 3.83 perf-stat.dTLB-store-miss-rate%
4.519e+11 -1.3% 4.461e+11 perf-stat.dTLB-store-misses
1.082e+13 +3.6% 1.121e+13 perf-stat.dTLB-stores
3.02e+10 +23.2% 3.721e+10 ± 3% perf-stat.iTLB-load-misses
2.721e+08 ± 8% -8.8% 2.481e+08 ± 3% perf-stat.iTLB-loads
6.985e+13 +1.8% 7.111e+13 perf-stat.instructions
2313 -17.2% 1914 ± 3% perf-stat.instructions-per-iTLB-miss
2.764e+10 -1.3% 2.729e+10 perf-stat.minor-faults
1.421e+09 ± 2% -16.4% 1.188e+09 ± 9% perf-stat.node-load-misses
1.538e+10 -9.3% 1.395e+10 perf-stat.node-loads
9.75 +1.4 11.10 perf-stat.node-store-miss-rate%
3.012e+09 +14.1% 3.437e+09 perf-stat.node-store-misses
2.789e+10 -1.3% 2.753e+10 perf-stat.node-stores
2.764e+10 -1.3% 2.729e+10 perf-stat.page-faults
760059 +3.2% 784235 perf-stat.path-length
193545 ± 25% -57.8% 81757 ± 46% sched_debug.cfs_rq:/.MIN_vruntime.avg
26516863 ± 19% -49.7% 13338070 ± 33% sched_debug.cfs_rq:/.MIN_vruntime.max
2202271 ± 21% -53.2% 1029581 ± 38% sched_debug.cfs_rq:/.MIN_vruntime.stddev
193545 ± 25% -57.8% 81757 ± 46% sched_debug.cfs_rq:/.max_vruntime.avg
26516863 ± 19% -49.7% 13338070 ± 33% sched_debug.cfs_rq:/.max_vruntime.max
2202271 ± 21% -53.2% 1029581 ± 38% sched_debug.cfs_rq:/.max_vruntime.stddev
0.32 ± 70% +253.2% 1.14 ± 54% sched_debug.cfs_rq:/.removed.load_avg.avg
4.44 ± 70% +120.7% 9.80 ± 27% sched_debug.cfs_rq:/.removed.load_avg.stddev
14.90 ± 70% +251.0% 52.31 ± 53% sched_debug.cfs_rq:/.removed.runnable_sum.avg
205.71 ± 70% +119.5% 451.60 ± 27% sched_debug.cfs_rq:/.removed.runnable_sum.stddev
0.16 ± 70% +237.9% 0.54 ± 50% sched_debug.cfs_rq:/.removed.util_avg.avg
2.23 ± 70% +114.2% 4.77 ± 24% sched_debug.cfs_rq:/.removed.util_avg.stddev
573.70 ± 5% -9.7% 518.06 ± 6% sched_debug.cfs_rq:/.util_avg.min
114.87 ± 8% +14.1% 131.04 ± 10% sched_debug.cfs_rq:/.util_est_enqueued.avg
64.42 ± 54% -63.9% 23.27 ± 68% sched_debug.cpu.cpu_load[1].max
5.05 ± 48% -55.2% 2.26 ± 51% sched_debug.cpu.cpu_load[1].stddev
57.58 ± 59% -60.3% 22.88 ± 70% sched_debug.cpu.cpu_load[2].max
21019 ± 3% -15.1% 17841 ± 6% sched_debug.cpu.nr_switches.min
20797 ± 3% -15.0% 17670 ± 6% sched_debug.cpu.sched_count.min
10287 ± 3% -15.1% 8736 ± 6% sched_debug.cpu.sched_goidle.avg
13693 ± 2% -10.7% 12233 ± 5% sched_debug.cpu.sched_goidle.max
9976 ± 3% -16.0% 8381 ± 7% sched_debug.cpu.sched_goidle.min
0.00 ± 26% +98.9% 0.00 ± 28% sched_debug.rt_rq:/.rt_time.min
4230 ±141% -100.0% 0.00 latency_stats.avg.trace_module_notify.notifier_call_chain.blocking_notifier_call_chain.do_init_module.load_module.__do_sys_finit_module.do_syscall_64.entry_SYSCALL_64_after_hwframe
28498 ±141% -100.0% 0.00 latency_stats.avg.perf_event_alloc.__do_sys_perf_event_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
4065 ±138% -92.2% 315.33 ± 91% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup_revalidate.lookup_fast.walk_component.link_path_walk.path_lookupat.filename_lookup
0.00 +3.6e+105% 3641 ±141% latency_stats.avg.down.console_lock.console_device.tty_lookup_driver.tty_open.chrdev_open.do_dentry_open.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +2.5e+106% 25040 ±141% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +3.4e+106% 34015 ±141% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_get_acl.get_acl.posix_acl_create.nfs3_proc_create.nfs_create.path_openat.do_filp_open.do_sys_open
0.00 +4.8e+106% 47686 ±141% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_do_create.nfs3_proc_create.nfs_create.path_openat.do_filp_open.do_sys_open.do_syscall_64
4230 ±141% -100.0% 0.00 latency_stats.max.trace_module_notify.notifier_call_chain.blocking_notifier_call_chain.do_init_module.load_module.__do_sys_finit_module.do_syscall_64.entry_SYSCALL_64_after_hwframe
28498 ±141% -100.0% 0.00 latency_stats.max.perf_event_alloc.__do_sys_perf_event_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
4065 ±138% -92.2% 315.33 ± 91% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup_revalidate.lookup_fast.walk_component.link_path_walk.path_lookupat.filename_lookup
4254 ±134% -88.0% 511.67 ± 90% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat
43093 ± 35% +76.6% 76099 ±115% latency_stats.max.blk_execute_rq.scsi_execute.ioctl_internal_command.scsi_set_medium_removal.cdrom_release.[cdrom].sr_block_release.[sr_mod].__blkdev_put.blkdev_close.__fput.task_work_run.exit_to_usermode_loop.do_syscall_64
24139 ± 70% +228.5% 79285 ±105% latency_stats.max.blk_execute_rq.scsi_execute.scsi_test_unit_ready.sr_check_events.[sr_mod].cdrom_check_events.[cdrom].sr_block_check_events.[sr_mod].disk_check_events.disk_clear_events.check_disk_change.sr_block_open.[sr_mod].__blkdev_get.blkdev_get
0.00 +3.6e+105% 3641 ±141% latency_stats.max.down.console_lock.console_device.tty_lookup_driver.tty_open.chrdev_open.do_dentry_open.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +2.5e+106% 25040 ±141% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +3.4e+106% 34015 ±141% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_get_acl.get_acl.posix_acl_create.nfs3_proc_create.nfs_create.path_openat.do_filp_open.do_sys_open
0.00 +6.5e+106% 64518 ±141% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_do_create.nfs3_proc_create.nfs_create.path_openat.do_filp_open.do_sys_open.do_syscall_64
4230 ±141% -100.0% 0.00 latency_stats.sum.trace_module_notify.notifier_call_chain.blocking_notifier_call_chain.do_init_module.load_module.__do_sys_finit_module.do_syscall_64.entry_SYSCALL_64_after_hwframe
28498 ±141% -100.0% 0.00 latency_stats.sum.perf_event_alloc.__do_sys_perf_event_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
4065 ±138% -92.2% 315.33 ± 91% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup_revalidate.lookup_fast.walk_component.link_path_walk.path_lookupat.filename_lookup
57884 ± 9% +47.3% 85264 ±118% latency_stats.sum.blk_execute_rq.scsi_execute.ioctl_internal_command.scsi_set_medium_removal.cdrom_release.[cdrom].sr_block_release.[sr_mod].__blkdev_put.blkdev_close.__fput.task_work_run.exit_to_usermode_loop.do_syscall_64
0.00 +3.6e+105% 3641 ±141% latency_stats.sum.down.console_lock.console_device.tty_lookup_driver.tty_open.chrdev_open.do_dentry_open.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +2.5e+106% 25040 ±141% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +3.4e+106% 34015 ±141% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_get_acl.get_acl.posix_acl_create.nfs3_proc_create.nfs_create.path_openat.do_filp_open.do_sys_open
0.00 +9.5e+106% 95373 ±141% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_do_create.nfs3_proc_create.nfs_create.path_openat.do_filp_open.do_sys_open.do_syscall_64
11.70 -11.7 0.00 perf-profile.calltrace.cycles-pp.__do_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
11.52 -11.5 0.00 perf-profile.calltrace.cycles-pp.shmem_fault.__do_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
10.44 -10.4 0.00 perf-profile.calltrace.cycles-pp.shmem_getpage_gfp.shmem_fault.__do_fault.__handle_mm_fault.handle_mm_fault
9.83 -9.8 0.00 perf-profile.calltrace.cycles-pp.find_lock_entry.shmem_getpage_gfp.shmem_fault.__do_fault.__handle_mm_fault
9.55 -9.5 0.00 perf-profile.calltrace.cycles-pp.finish_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
9.35 -9.3 0.00 perf-profile.calltrace.cycles-pp.alloc_set_pte.finish_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
6.81 -6.8 0.00 perf-profile.calltrace.cycles-pp.page_add_file_rmap.alloc_set_pte.finish_fault.__handle_mm_fault.handle_mm_fault
7.71 -0.3 7.45 perf-profile.calltrace.cycles-pp.find_get_entry.find_lock_entry.shmem_getpage_gfp.shmem_fault.__do_fault
0.59 ± 7% -0.2 0.35 ± 70% perf-profile.calltrace.cycles-pp.smp_apic_timer_interrupt.apic_timer_interrupt.__do_page_fault.do_page_fault.page_fault
0.59 ± 7% -0.2 0.35 ± 70% perf-profile.calltrace.cycles-pp.apic_timer_interrupt.__do_page_fault.do_page_fault.page_fault
10.41 -0.2 10.24 perf-profile.calltrace.cycles-pp.native_irq_return_iret
7.68 -0.1 7.60 perf-profile.calltrace.cycles-pp.swapgs_restore_regs_and_return_to_usermode
0.76 -0.1 0.70 perf-profile.calltrace.cycles-pp.down_read_trylock.__do_page_fault.do_page_fault.page_fault
1.38 -0.0 1.34 perf-profile.calltrace.cycles-pp.do_page_fault
1.05 -0.0 1.02 perf-profile.calltrace.cycles-pp.trace_graph_entry.do_page_fault
0.92 +0.0 0.94 perf-profile.calltrace.cycles-pp.find_vma.__do_page_fault.do_page_fault.page_fault
0.91 +0.0 0.93 perf-profile.calltrace.cycles-pp.vmacache_find.find_vma.__do_page_fault.do_page_fault.page_fault
0.65 +0.0 0.67 perf-profile.calltrace.cycles-pp.set_page_dirty.unmap_page_range.unmap_vmas.unmap_region.do_munmap
0.62 +0.0 0.66 perf-profile.calltrace.cycles-pp.page_mapping.find_lock_entry.shmem_getpage_gfp.shmem_fault.__do_fault
4.15 +0.1 4.27 perf-profile.calltrace.cycles-pp.page_remove_rmap.unmap_page_range.unmap_vmas.unmap_region.do_munmap
10.17 +0.2 10.39 perf-profile.calltrace.cycles-pp.munmap
9.56 +0.2 9.78 perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.munmap
9.56 +0.2 9.78 perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.munmap
9.56 +0.2 9.78 perf-profile.calltrace.cycles-pp.unmap_region.do_munmap.vm_munmap.__x64_sys_munmap.do_syscall_64
9.54 +0.2 9.76 perf-profile.calltrace.cycles-pp.unmap_page_range.unmap_vmas.unmap_region.do_munmap.vm_munmap
9.54 +0.2 9.76 perf-profile.calltrace.cycles-pp.unmap_vmas.unmap_region.do_munmap.vm_munmap.__x64_sys_munmap
9.56 +0.2 9.78 perf-profile.calltrace.cycles-pp.do_munmap.vm_munmap.__x64_sys_munmap.do_syscall_64.entry_SYSCALL_64_after_hwframe
9.56 +0.2 9.78 perf-profile.calltrace.cycles-pp.vm_munmap.__x64_sys_munmap.do_syscall_64.entry_SYSCALL_64_after_hwframe.munmap
9.56 +0.2 9.78 perf-profile.calltrace.cycles-pp.__x64_sys_munmap.do_syscall_64.entry_SYSCALL_64_after_hwframe.munmap
0.00 +0.6 0.56 ± 2% perf-profile.calltrace.cycles-pp.lock_page_memcg.page_add_file_rmap.alloc_set_pte.finish_fault.handle_pte_fault
0.00 +0.6 0.59 perf-profile.calltrace.cycles-pp.page_mapping.set_page_dirty.fault_dirty_shared_page.handle_pte_fault.__handle_mm_fault
0.00 +0.6 0.60 perf-profile.calltrace.cycles-pp.current_time.file_update_time.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +0.7 0.68 perf-profile.calltrace.cycles-pp.___might_sleep.find_lock_entry.shmem_getpage_gfp.shmem_fault.__do_fault
0.00 +0.7 0.74 perf-profile.calltrace.cycles-pp.unlock_page.fault_dirty_shared_page.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +0.8 0.80 perf-profile.calltrace.cycles-pp.set_page_dirty.fault_dirty_shared_page.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +0.9 0.88 perf-profile.calltrace.cycles-pp._raw_spin_lock.pte_map_lock.alloc_set_pte.finish_fault.handle_pte_fault
0.00 +0.9 0.91 perf-profile.calltrace.cycles-pp.__set_page_dirty_no_writeback.fault_dirty_shared_page.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +1.3 1.27 perf-profile.calltrace.cycles-pp.pte_map_lock.alloc_set_pte.finish_fault.handle_pte_fault.__handle_mm_fault
0.00 +1.3 1.30 perf-profile.calltrace.cycles-pp.file_update_time.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
0.00 +2.8 2.76 perf-profile.calltrace.cycles-pp.fault_dirty_shared_page.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
0.00 +6.8 6.81 perf-profile.calltrace.cycles-pp.page_add_file_rmap.alloc_set_pte.finish_fault.handle_pte_fault.__handle_mm_fault
0.00 +9.4 9.39 perf-profile.calltrace.cycles-pp.alloc_set_pte.finish_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +9.6 9.59 perf-profile.calltrace.cycles-pp.finish_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
0.00 +9.8 9.77 perf-profile.calltrace.cycles-pp.find_lock_entry.shmem_getpage_gfp.shmem_fault.__do_fault.handle_pte_fault
0.00 +10.4 10.37 perf-profile.calltrace.cycles-pp.shmem_getpage_gfp.shmem_fault.__do_fault.handle_pte_fault.__handle_mm_fault
0.00 +11.5 11.46 perf-profile.calltrace.cycles-pp.shmem_fault.__do_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +11.6 11.60 perf-profile.calltrace.cycles-pp.__do_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
0.00 +26.6 26.62 perf-profile.calltrace.cycles-pp.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
7.88 -0.3 7.61 perf-profile.children.cycles-pp.find_get_entry
1.34 ± 8% -0.2 1.16 ± 2% perf-profile.children.cycles-pp.hrtimer_interrupt
10.41 -0.2 10.24 perf-profile.children.cycles-pp.native_irq_return_iret
0.38 ± 28% -0.1 0.26 ± 4% perf-profile.children.cycles-pp.tick_sched_timer
11.80 -0.1 11.68 perf-profile.children.cycles-pp.__do_fault
0.55 ± 15% -0.1 0.43 ± 2% perf-profile.children.cycles-pp.__hrtimer_run_queues
0.60 -0.1 0.51 perf-profile.children.cycles-pp.pmd_devmap_trans_unstable
0.38 ± 13% -0.1 0.29 ± 4% perf-profile.children.cycles-pp.ktime_get
7.68 -0.1 7.60 perf-profile.children.cycles-pp.swapgs_restore_regs_and_return_to_usermode
5.18 -0.1 5.12 perf-profile.children.cycles-pp.trace_graph_entry
0.79 -0.1 0.73 perf-profile.children.cycles-pp.down_read_trylock
7.83 -0.1 7.76 perf-profile.children.cycles-pp.sync_regs
3.01 -0.1 2.94 perf-profile.children.cycles-pp.fault_dirty_shared_page
1.02 -0.1 0.96 perf-profile.children.cycles-pp._raw_spin_lock
4.66 -0.1 4.61 perf-profile.children.cycles-pp.prepare_ftrace_return
0.37 ± 8% -0.1 0.32 ± 3% perf-profile.children.cycles-pp.current_kernel_time64
5.26 -0.1 5.21 perf-profile.children.cycles-pp.ftrace_graph_caller
0.66 ± 5% -0.1 0.61 perf-profile.children.cycles-pp.current_time
0.18 ± 5% -0.0 0.15 ± 3% perf-profile.children.cycles-pp.update_process_times
0.27 -0.0 0.26 perf-profile.children.cycles-pp._cond_resched
0.16 -0.0 0.15 ± 3% perf-profile.children.cycles-pp.rcu_all_qs
0.94 +0.0 0.95 perf-profile.children.cycles-pp.vmacache_find
0.48 +0.0 0.50 perf-profile.children.cycles-pp.__mod_node_page_state
0.17 +0.0 0.19 ± 2% perf-profile.children.cycles-pp.__unlock_page_memcg
1.07 +0.0 1.10 perf-profile.children.cycles-pp.find_vma
0.79 ± 3% +0.1 0.86 ± 2% perf-profile.children.cycles-pp.lock_page_memcg
4.29 +0.1 4.40 perf-profile.children.cycles-pp.page_remove_rmap
1.39 ± 2% +0.1 1.52 perf-profile.children.cycles-pp.file_update_time
0.00 +0.2 0.16 perf-profile.children.cycles-pp.__vm_normal_page
9.63 +0.2 9.84 perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
9.63 +0.2 9.84 perf-profile.children.cycles-pp.do_syscall_64
9.63 +0.2 9.84 perf-profile.children.cycles-pp.unmap_page_range
10.17 +0.2 10.39 perf-profile.children.cycles-pp.munmap
9.56 +0.2 9.78 perf-profile.children.cycles-pp.unmap_region
9.56 +0.2 9.78 perf-profile.children.cycles-pp.do_munmap
9.56 +0.2 9.78 perf-profile.children.cycles-pp.vm_munmap
9.56 +0.2 9.78 perf-profile.children.cycles-pp.__x64_sys_munmap
9.54 +0.2 9.77 perf-profile.children.cycles-pp.unmap_vmas
1.01 +0.2 1.25 perf-profile.children.cycles-pp.___might_sleep
0.00 +1.6 1.59 perf-profile.children.cycles-pp.pte_map_lock
0.00 +26.9 26.89 perf-profile.children.cycles-pp.handle_pte_fault
4.25 -1.0 3.24 perf-profile.self.cycles-pp.__handle_mm_fault
1.42 -0.3 1.11 perf-profile.self.cycles-pp.alloc_set_pte
4.87 -0.3 4.59 perf-profile.self.cycles-pp.find_get_entry
10.41 -0.2 10.24 perf-profile.self.cycles-pp.native_irq_return_iret
0.37 ± 13% -0.1 0.28 ± 4% perf-profile.self.cycles-pp.ktime_get
0.60 -0.1 0.51 perf-profile.self.cycles-pp.pmd_devmap_trans_unstable
7.50 -0.1 7.42 perf-profile.self.cycles-pp.swapgs_restore_regs_and_return_to_usermode
7.83 -0.1 7.76 perf-profile.self.cycles-pp.sync_regs
4.85 -0.1 4.79 perf-profile.self.cycles-pp.trace_graph_entry
1.01 -0.1 0.95 perf-profile.self.cycles-pp._raw_spin_lock
0.78 -0.1 0.73 perf-profile.self.cycles-pp.down_read_trylock
0.36 ± 9% -0.1 0.31 ± 4% perf-profile.self.cycles-pp.current_kernel_time64
0.28 -0.0 0.23 ± 2% perf-profile.self.cycles-pp.__do_fault
1.04 -0.0 1.00 perf-profile.self.cycles-pp.find_lock_entry
0.30 -0.0 0.28 ± 3% perf-profile.self.cycles-pp.fault_dirty_shared_page
0.70 -0.0 0.67 perf-profile.self.cycles-pp.prepare_ftrace_return
0.44 -0.0 0.42 perf-profile.self.cycles-pp.do_page_fault
0.16 -0.0 0.14 perf-profile.self.cycles-pp.rcu_all_qs
0.78 -0.0 0.77 perf-profile.self.cycles-pp.shmem_getpage_gfp
0.20 -0.0 0.19 perf-profile.self.cycles-pp._cond_resched
0.50 +0.0 0.51 perf-profile.self.cycles-pp.set_page_dirty
0.93 +0.0 0.95 perf-profile.self.cycles-pp.vmacache_find
0.36 ± 2% +0.0 0.38 perf-profile.self.cycles-pp.__might_sleep
0.47 +0.0 0.50 perf-profile.self.cycles-pp.__mod_node_page_state
0.17 +0.0 0.19 ± 2% perf-profile.self.cycles-pp.__unlock_page_memcg
2.34 +0.0 2.38 perf-profile.self.cycles-pp.unmap_page_range
0.78 ± 3% +0.1 0.85 ± 2% perf-profile.self.cycles-pp.lock_page_memcg
2.17 +0.1 2.24 perf-profile.self.cycles-pp.__do_page_fault
0.00 +0.2 0.16 ± 3% perf-profile.self.cycles-pp.__vm_normal_page
1.00 +0.2 1.24 perf-profile.self.cycles-pp.___might_sleep
0.00 +0.7 0.70 perf-profile.self.cycles-pp.pte_map_lock
0.00 +1.4 1.42 ± 2% perf-profile.self.cycles-pp.handle_pte_fault
=========================================================================================
tbox_group/testcase/rootfs/kconfig/compiler/nr_task/thp_enabled/test/cpufreq_governor:
lkp-skl-4sp1/will-it-scale/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/100%/never/context_switch1/performance
commit:
ba98a1cdad71d259a194461b3a61471b49b14df1
a7a8993bfe3ccb54ad468b9f1799649e4ad1ff12
ba98a1cdad71d259 a7a8993bfe3ccb54ad468b9f17
---------------- --------------------------
fail:runs %reproduction fail:runs
| | |
:3 33% 1:3 dmesg.WARNING:at#for_ip_interrupt_entry/0x
2:3 -67% :3 kmsg.pstore:crypto_comp_decompress_failed,ret=
2:3 -67% :3 kmsg.pstore:decompression_failed
%stddev %change %stddev
\ | \
224431 -1.3% 221567 will-it-scale.per_process_ops
237006 -2.2% 231907 will-it-scale.per_thread_ops
1.601e+09 ± 29% -46.9% 8.501e+08 ± 12% will-it-scale.time.involuntary_context_switches
5429 -1.6% 5344 will-it-scale.time.user_time
88596221 -1.7% 87067269 will-it-scale.workload
6863 ± 6% -9.7% 6200 boot-time.idle
144908 ± 40% -66.8% 48173 ± 93% meminfo.CmaFree
0.00 ± 70% +0.0 0.00 mpstat.cpu.iowait%
448336 ± 14% -34.8% 292125 ± 3% turbostat.C1
7684 ± 6% -9.5% 6957 uptime.idle
1.601e+09 ± 29% -46.9% 8.501e+08 ± 12% time.involuntary_context_switches
5429 -1.6% 5344 time.user_time
44013162 -1.7% 43243125 vmstat.system.cs
207684 -1.1% 205485 vmstat.system.in
2217033 ± 15% -15.8% 1866876 ± 2% cpuidle.C1.time
451218 ± 14% -34.7% 294841 ± 2% cpuidle.C1.usage
24839 ± 10% -19.9% 19896 cpuidle.POLL.time
7656 ± 11% -38.9% 4676 ± 8% cpuidle.POLL.usage
5.48 ± 49% -67.3% 1.79 ±100% irq_exception_noise.__do_page_fault.95th
9.46 ± 21% -58.2% 3.95 ± 64% irq_exception_noise.__do_page_fault.99th
35.67 ± 8% +1394.4% 533.00 ± 96% irq_exception_noise.irq_nr
52109 ± 3% -16.0% 43784 ± 4% irq_exception_noise.softirq_time
36226 ± 40% -66.7% 12048 ± 93% proc-vmstat.nr_free_cma
25916 -1.0% 25659 proc-vmstat.nr_slab_reclaimable
16279 ± 8% +2646.1% 447053 ± 82% proc-vmstat.pgalloc_movable
2231117 -18.4% 1820828 ± 20% proc-vmstat.pgalloc_normal
1109316 ± 46% -86.9% 145207 ±109% numa-numastat.node1.local_node
1114700 ± 45% -84.5% 172877 ± 85% numa-numastat.node1.numa_hit
5523 ±140% +402.8% 27768 ± 39% numa-numastat.node1.other_node
29013 ± 29% +3048.1% 913379 ± 73% numa-numastat.node3.local_node
65032 ± 13% +1335.1% 933270 ± 70% numa-numastat.node3.numa_hit
36018 -44.8% 19897 ± 75% numa-numastat.node3.other_node
12.79 ± 21% +7739.1% 1002 ±136% sched_debug.cpu.cpu_load[1].max
1.82 ± 10% +3901.1% 72.92 ±135% sched_debug.cpu.cpu_load[1].stddev
1.71 ± 4% +5055.8% 88.08 ±137% sched_debug.cpu.cpu_load[2].stddev
12.33 ± 23% +9061.9% 1129 ±139% sched_debug.cpu.cpu_load[3].max
1.78 ± 10% +4514.8% 82.18 ±137% sched_debug.cpu.cpu_load[3].stddev
4692 ± 72% +154.5% 11945 ± 29% sched_debug.cpu.max_idle_balance_cost.stddev
23979 -8.3% 21983 slabinfo.kmalloc-96.active_objs
1358 ± 6% -17.9% 1114 ± 3% slabinfo.nsproxy.active_objs
1358 ± 6% -17.9% 1114 ± 3% slabinfo.nsproxy.num_objs
15229 +12.4% 17119 slabinfo.pde_opener.active_objs
15229 +12.4% 17119 slabinfo.pde_opener.num_objs
59541 ± 8% -10.1% 53537 ± 8% slabinfo.vm_area_struct.active_objs
59612 ± 8% -10.1% 53604 ± 8% slabinfo.vm_area_struct.num_objs
4.163e+13 -1.4% 4.105e+13 perf-stat.branch-instructions
6.537e+11 -1.2% 6.459e+11 perf-stat.branch-misses
2.667e+10 -1.7% 2.621e+10 perf-stat.context-switches
1.21 +1.3% 1.22 perf-stat.cpi
150508 -9.8% 135825 ± 3% perf-stat.cpu-migrations
5.75 ± 33% +5.4 11.11 ± 26% perf-stat.iTLB-load-miss-rate%
3.619e+09 ± 36% +100.9% 7.272e+09 ± 30% perf-stat.iTLB-load-misses
2.089e+14 -1.3% 2.062e+14 perf-stat.instructions
64607 ± 29% -50.5% 31964 ± 37% perf-stat.instructions-per-iTLB-miss
0.83 -1.3% 0.82 perf-stat.ipc
3972 ± 4% -14.7% 3388 ± 8% numa-meminfo.node0.PageTables
207919 ± 25% -57.2% 88989 ± 74% numa-meminfo.node1.Active
207715 ± 26% -57.3% 88785 ± 74% numa-meminfo.node1.Active(anon)
356529 -34.3% 234069 ± 2% numa-meminfo.node1.FilePages
789129 ± 5% -19.8% 633161 ± 12% numa-meminfo.node1.MemUsed
34777 ± 8% -48.2% 18010 ± 30% numa-meminfo.node1.SReclaimable
69641 ± 4% -20.7% 55250 ± 12% numa-meminfo.node1.SUnreclaim
125526 ± 4% -96.3% 4602 ± 41% numa-meminfo.node1.Shmem
104419 -29.8% 73261 ± 16% numa-meminfo.node1.Slab
103661 ± 17% -72.0% 29029 ± 99% numa-meminfo.node2.Active
103661 ± 17% -72.2% 28829 ±101% numa-meminfo.node2.Active(anon)
103564 ± 18% -72.0% 29007 ±100% numa-meminfo.node2.AnonPages
671654 ± 7% -14.6% 573598 ± 4% numa-meminfo.node2.MemUsed
44206 ±127% +301.4% 177465 ± 42% numa-meminfo.node3.Active
44206 ±127% +301.0% 177263 ± 42% numa-meminfo.node3.Active(anon)
8738 +12.2% 9805 ± 8% numa-meminfo.node3.KernelStack
603605 ± 9% +27.8% 771554 ± 14% numa-meminfo.node3.MemUsed
14438 ± 6% +122.9% 32181 ± 42% numa-meminfo.node3.SReclaimable
2786 ±137% +3302.0% 94792 ± 71% numa-meminfo.node3.Shmem
71461 ± 7% +45.2% 103771 ± 29% numa-meminfo.node3.Slab
247197 ± 4% -7.8% 227843 numa-meminfo.node3.Unevictable
991.67 ± 4% -14.7% 846.00 ± 8% numa-vmstat.node0.nr_page_table_pages
51926 ± 26% -57.3% 22196 ± 74% numa-vmstat.node1.nr_active_anon
89137 -34.4% 58516 ± 2% numa-vmstat.node1.nr_file_pages
1679 ± 5% -10.8% 1498 ± 4% numa-vmstat.node1.nr_mapped
31386 ± 4% -96.3% 1150 ± 41% numa-vmstat.node1.nr_shmem
8694 ± 8% -48.2% 4502 ± 30% numa-vmstat.node1.nr_slab_reclaimable
17410 ± 4% -20.7% 13812 ± 12% numa-vmstat.node1.nr_slab_unreclaimable
51926 ± 26% -57.3% 22196 ± 74% numa-vmstat.node1.nr_zone_active_anon
1037174 ± 24% -57.0% 446205 ± 35% numa-vmstat.node1.numa_hit
961611 ± 26% -65.8% 328687 ± 50% numa-vmstat.node1.numa_local
75563 ± 44% +55.5% 117517 ± 9% numa-vmstat.node1.numa_other
25914 ± 17% -72.2% 7206 ±101% numa-vmstat.node2.nr_active_anon
25891 ± 18% -72.0% 7251 ±100% numa-vmstat.node2.nr_anon_pages
25914 ± 17% -72.2% 7206 ±101% numa-vmstat.node2.nr_zone_active_anon
11051 ±127% +301.0% 44309 ± 42% numa-vmstat.node3.nr_active_anon
36227 ± 40% -66.7% 12049 ± 93% numa-vmstat.node3.nr_free_cma
0.33 ±141% +25000.0% 83.67 ± 81% numa-vmstat.node3.nr_inactive_file
8739 +12.2% 9806 ± 8% numa-vmstat.node3.nr_kernel_stack
696.67 ±137% +3299.7% 23684 ± 71% numa-vmstat.node3.nr_shmem
3609 ± 6% +122.9% 8044 ± 42% numa-vmstat.node3.nr_slab_reclaimable
61799 ± 4% -7.8% 56960 numa-vmstat.node3.nr_unevictable
11053 ±127% +301.4% 44361 ± 42% numa-vmstat.node3.nr_zone_active_anon
0.33 ±141% +25000.0% 83.67 ± 81% numa-vmstat.node3.nr_zone_inactive_file
61799 ± 4% -7.8% 56960 numa-vmstat.node3.nr_zone_unevictable
217951 ± 8% +280.8% 829976 ± 65% numa-vmstat.node3.numa_hit
91303 ± 19% +689.3% 720647 ± 77% numa-vmstat.node3.numa_local
126648 -13.7% 109329 ± 13% numa-vmstat.node3.numa_other
8.54 -0.1 8.40 perf-profile.calltrace.cycles-pp.dequeue_task_fair.__schedule.schedule.pipe_wait.pipe_read
5.04 -0.1 4.94 perf-profile.calltrace.cycles-pp.__switch_to.read
3.43 -0.1 3.35 perf-profile.calltrace.cycles-pp.syscall_return_via_sysret.write
2.77 -0.1 2.72 perf-profile.calltrace.cycles-pp.reweight_entity.enqueue_task_fair.ttwu_do_activate.try_to_wake_up.autoremove_wake_function
1.99 -0.0 1.94 perf-profile.calltrace.cycles-pp.copy_page_to_iter.pipe_read.__vfs_read.vfs_read.ksys_read
0.60 ± 2% -0.0 0.57 ± 2% perf-profile.calltrace.cycles-pp.find_next_bit.cpumask_next_wrap.select_idle_sibling.select_task_rq_fair.try_to_wake_up
0.81 -0.0 0.78 perf-profile.calltrace.cycles-pp.___perf_sw_event.__schedule.schedule.pipe_wait.pipe_read
0.78 +0.0 0.80 perf-profile.calltrace.cycles-pp.__fdget_pos.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe.write
0.73 +0.0 0.75 perf-profile.calltrace.cycles-pp.__fget_light.__fdget_pos.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.92 +0.0 0.95 perf-profile.calltrace.cycles-pp.check_preempt_wakeup.check_preempt_curr.ttwu_do_wakeup.try_to_wake_up.autoremove_wake_function
2.11 +0.0 2.15 perf-profile.calltrace.cycles-pp.security_file_permission.vfs_read.ksys_read.do_syscall_64.entry_SYSCALL_64_after_hwframe
7.00 -0.1 6.86 perf-profile.children.cycles-pp.syscall_return_via_sysret
5.26 -0.1 5.14 perf-profile.children.cycles-pp.__switch_to
5.65 -0.1 5.56 perf-profile.children.cycles-pp.reweight_entity
2.17 -0.1 2.12 perf-profile.children.cycles-pp.copy_page_to_iter
2.94 -0.0 2.90 perf-profile.children.cycles-pp.update_cfs_group
3.11 -0.0 3.07 perf-profile.children.cycles-pp.pick_next_task_fair
2.59 -0.0 2.55 perf-profile.children.cycles-pp.load_new_mm_cr3
1.92 -0.0 1.88 perf-profile.children.cycles-pp._raw_spin_lock_irqsave
1.11 -0.0 1.08 ± 2% perf-profile.children.cycles-pp.find_next_bit
0.59 -0.0 0.56 perf-profile.children.cycles-pp.finish_task_switch
0.14 ± 15% -0.0 0.11 ± 16% perf-profile.children.cycles-pp.write@plt
1.21 -0.0 1.18 perf-profile.children.cycles-pp.set_next_entity
0.85 -0.0 0.82 perf-profile.children.cycles-pp.___perf_sw_event
0.13 ± 3% -0.0 0.11 ± 4% perf-profile.children.cycles-pp.timespec_trunc
0.47 ± 2% -0.0 0.45 perf-profile.children.cycles-pp.anon_pipe_buf_release
0.38 ± 2% -0.0 0.36 perf-profile.children.cycles-pp.file_update_time
0.74 -0.0 0.73 perf-profile.children.cycles-pp.copyout
0.41 ± 2% -0.0 0.39 perf-profile.children.cycles-pp.copy_user_enhanced_fast_string
0.32 -0.0 0.30 perf-profile.children.cycles-pp.__x64_sys_read
0.14 -0.0 0.12 ± 3% perf-profile.children.cycles-pp.current_kernel_time64
0.91 +0.0 0.92 perf-profile.children.cycles-pp.touch_atime
0.40 +0.0 0.41 perf-profile.children.cycles-pp._cond_resched
0.18 ± 2% +0.0 0.20 perf-profile.children.cycles-pp.activate_task
0.05 +0.0 0.07 ± 6% perf-profile.children.cycles-pp.default_wake_function
0.24 +0.0 0.27 ± 3% perf-profile.children.cycles-pp.rcu_all_qs
0.60 ± 2% +0.0 0.64 ± 2% perf-profile.children.cycles-pp.update_min_vruntime
0.42 ± 4% +0.0 0.46 ± 4% perf-profile.children.cycles-pp.probe_sched_switch
1.33 +0.0 1.38 perf-profile.children.cycles-pp.__fget_light
0.53 ± 2% +0.1 0.58 perf-profile.children.cycles-pp.entry_SYSCALL_64_stage2
0.31 +0.1 0.36 ± 2% perf-profile.children.cycles-pp.generic_pipe_buf_confirm
4.35 +0.1 4.41 perf-profile.children.cycles-pp.switch_mm_irqs_off
2.52 +0.1 2.58 perf-profile.children.cycles-pp.selinux_file_permission
0.00 +0.1 0.07 ± 11% perf-profile.children.cycles-pp.hrtick_update
7.00 -0.1 6.86 perf-profile.self.cycles-pp.syscall_return_via_sysret
5.26 -0.1 5.14 perf-profile.self.cycles-pp.__switch_to
0.29 -0.1 0.19 ± 2% perf-profile.self.cycles-pp.ksys_read
1.49 -0.1 1.43 perf-profile.self.cycles-pp.dequeue_task_fair
2.41 -0.1 2.35 perf-profile.self.cycles-pp.__schedule
1.46 -0.0 1.41 perf-profile.self.cycles-pp.select_task_rq_fair
2.94 -0.0 2.90 perf-profile.self.cycles-pp.update_cfs_group
0.44 -0.0 0.40 perf-profile.self.cycles-pp.dequeue_entity
0.48 -0.0 0.44 perf-profile.self.cycles-pp.finish_task_switch
2.59 -0.0 2.55 perf-profile.self.cycles-pp.load_new_mm_cr3
1.11 -0.0 1.08 ± 2% perf-profile.self.cycles-pp.find_next_bit
1.91 -0.0 1.88 perf-profile.self.cycles-pp._raw_spin_lock_irqsave
0.78 -0.0 0.75 perf-profile.self.cycles-pp.___perf_sw_event
0.14 ± 15% -0.0 0.11 ± 16% perf-profile.self.cycles-pp.write@plt
0.37 -0.0 0.35 ± 2% perf-profile.self.cycles-pp.__wake_up_common_lock
0.20 ± 2% -0.0 0.17 ± 2% perf-profile.self.cycles-pp.__fdget_pos
0.47 ± 2% -0.0 0.44 perf-profile.self.cycles-pp.anon_pipe_buf_release
0.87 -0.0 0.85 perf-profile.self.cycles-pp.copy_user_generic_unrolled
0.13 ± 3% -0.0 0.11 ± 4% perf-profile.self.cycles-pp.timespec_trunc
0.41 ± 2% -0.0 0.39 perf-profile.self.cycles-pp.copy_user_enhanced_fast_string
0.38 -0.0 0.36 perf-profile.self.cycles-pp.__wake_up_common
0.32 -0.0 0.30 perf-profile.self.cycles-pp.__x64_sys_read
0.14 ± 3% -0.0 0.12 ± 3% perf-profile.self.cycles-pp.current_kernel_time64
0.30 -0.0 0.28 perf-profile.self.cycles-pp.set_next_entity
0.28 ± 3% +0.0 0.30 perf-profile.self.cycles-pp._cond_resched
0.18 ± 2% +0.0 0.20 perf-profile.self.cycles-pp.activate_task
0.17 ± 2% +0.0 0.19 perf-profile.self.cycles-pp.__might_fault
0.05 +0.0 0.07 ± 6% perf-profile.self.cycles-pp.default_wake_function
0.17 ± 2% +0.0 0.20 perf-profile.self.cycles-pp.ttwu_do_activate
0.66 +0.0 0.69 perf-profile.self.cycles-pp.write
0.24 +0.0 0.27 ± 3% perf-profile.self.cycles-pp.rcu_all_qs
0.67 +0.0 0.70 perf-profile.self.cycles-pp.entry_SYSCALL_64_after_hwframe
0.60 ± 2% +0.0 0.64 ± 2% perf-profile.self.cycles-pp.update_min_vruntime
0.42 ± 4% +0.0 0.46 ± 4% perf-profile.self.cycles-pp.probe_sched_switch
1.33 +0.0 1.37 perf-profile.self.cycles-pp.__fget_light
1.61 +0.0 1.66 perf-profile.self.cycles-pp.pipe_read
0.53 ± 2% +0.1 0.58 perf-profile.self.cycles-pp.entry_SYSCALL_64_stage2
0.31 +0.1 0.36 ± 2% perf-profile.self.cycles-pp.generic_pipe_buf_confirm
1.04 +0.1 1.11 perf-profile.self.cycles-pp.pipe_write
0.00 +0.1 0.07 ± 11% perf-profile.self.cycles-pp.hrtick_update
2.00 +0.1 2.08 perf-profile.self.cycles-pp.switch_mm_irqs_off
=========================================================================================
tbox_group/testcase/rootfs/kconfig/compiler/nr_task/thp_enabled/test/cpufreq_governor:
lkp-skl-4sp1/will-it-scale/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/100%/never/page_fault3/performance
commit:
ba98a1cdad71d259a194461b3a61471b49b14df1
a7a8993bfe3ccb54ad468b9f1799649e4ad1ff12
ba98a1cdad71d259 a7a8993bfe3ccb54ad468b9f17
---------------- --------------------------
fail:runs %reproduction fail:runs
| | |
1:3 -33% :3 dmesg.WARNING:stack_going_in_the_wrong_direction?ip=file_update_time/0x
:3 33% 1:3 stderr.mount.nfs:Connection_timed_out
34:3 -401% 22:3 perf-profile.calltrace.cycles-pp.error_entry.testcase
17:3 -207% 11:3 perf-profile.calltrace.cycles-pp.sync_regs.error_entry.testcase
34:3 -404% 22:3 perf-profile.children.cycles-pp.error_entry
0:3 -2% 0:3 perf-profile.children.cycles-pp.error_exit
16:3 -196% 11:3 perf-profile.self.cycles-pp.error_entry
0:3 -2% 0:3 perf-profile.self.cycles-pp.error_exit
%stddev %change %stddev
\ | \
467454 -1.8% 459251 will-it-scale.per_process_ops
10856 ± 4% -23.1% 8344 ± 7% will-it-scale.per_thread_ops
118134 ± 2% +11.7% 131943 will-it-scale.time.involuntary_context_switches
6.277e+08 ± 4% -23.1% 4.827e+08 ± 7% will-it-scale.time.minor_page_faults
7406 +5.8% 7839 will-it-scale.time.percent_of_cpu_this_job_got
44526 +5.8% 47106 will-it-scale.time.system_time
7351468 ± 5% -18.3% 6009014 ± 7% will-it-scale.time.voluntary_context_switches
91835846 -2.2% 89778599 will-it-scale.workload
2534640 +4.3% 2643005 ± 2% interrupts.CAL:Function_call_interrupts
2819 ± 5% +22.9% 3464 ± 18% kthread_noise.total_time
30273 ± 4% -12.7% 26415 ± 5% vmstat.system.cs
1.52 ± 2% +15.2% 1.75 ± 2% irq_exception_noise.__do_page_fault.99th
296.67 ± 12% -36.7% 187.67 ± 12% irq_exception_noise.softirq_time
230900 ± 3% +30.3% 300925 ± 3% meminfo.Inactive
230184 ± 3% +30.4% 300180 ± 3% meminfo.Inactive(anon)
11.62 ± 3% -2.2 9.40 ± 5% mpstat.cpu.idle%
0.00 ± 14% -0.0 0.00 ± 4% mpstat.cpu.iowait%
7992174 -11.1% 7101976 ± 3% softirqs.RCU
4973624 ± 2% -12.9% 4333370 ± 2% softirqs.SCHED
118134 ± 2% +11.7% 131943 time.involuntary_context_switches
6.277e+08 ± 4% -23.1% 4.827e+08 ± 7% time.minor_page_faults
7406 +5.8% 7839 time.percent_of_cpu_this_job_got
44526 +5.8% 47106 time.system_time
7351468 ± 5% -18.3% 6009014 ± 7% time.voluntary_context_switches
2.702e+09 ± 5% -16.7% 2.251e+09 ± 7% cpuidle.C1E.time
6834329 ± 5% -15.8% 5756243 ± 7% cpuidle.C1E.usage
1.046e+10 ± 3% -19.8% 8.389e+09 ± 4% cpuidle.C6.time
13961845 ± 3% -19.3% 11265555 ± 4% cpuidle.C6.usage
1309307 ± 7% -14.8% 1116168 ± 8% cpuidle.POLL.time
19774 ± 6% -13.7% 17063 ± 7% cpuidle.POLL.usage
2523 ± 4% -11.1% 2243 ± 4% slabinfo.biovec-64.active_objs
2523 ± 4% -11.1% 2243 ± 4% slabinfo.biovec-64.num_objs
2610 ± 8% -33.7% 1731 ± 22% slabinfo.dmaengine-unmap-16.active_objs
2610 ± 8% -33.7% 1731 ± 22% slabinfo.dmaengine-unmap-16.num_objs
5118 ± 17% -22.6% 3962 ± 9% slabinfo.eventpoll_pwq.active_objs
5118 ± 17% -22.6% 3962 ± 9% slabinfo.eventpoll_pwq.num_objs
4583 ± 3% -14.0% 3941 ± 4% slabinfo.sock_inode_cache.active_objs
4583 ± 3% -14.0% 3941 ± 4% slabinfo.sock_inode_cache.num_objs
1933 +2.6% 1984 turbostat.Avg_MHz
6832021 ± 5% -15.8% 5754156 ± 7% turbostat.C1E
2.32 ± 5% -0.4 1.94 ± 7% turbostat.C1E%
13954211 ± 3% -19.3% 11259436 ± 4% turbostat.C6
8.97 ± 3% -1.8 7.20 ± 4% turbostat.C6%
6.18 ± 4% -17.1% 5.13 ± 5% turbostat.CPU%c1
5.12 ± 3% -21.7% 4.01 ± 4% turbostat.CPU%c6
1.76 ± 2% -34.7% 1.15 ± 2% turbostat.Pkg%pc2
57314 ± 4% +30.4% 74717 ± 4% proc-vmstat.nr_inactive_anon
57319 ± 4% +30.4% 74719 ± 4% proc-vmstat.nr_zone_inactive_anon
24415 ± 19% -62.2% 9236 ± 7% proc-vmstat.numa_hint_faults
69661453 -1.8% 68405712 proc-vmstat.numa_hit
69553390 -1.8% 68297790 proc-vmstat.numa_local
8792 ± 29% -92.6% 654.33 ± 23% proc-vmstat.numa_pages_migrated
40251 ± 32% -76.5% 9474 ± 3% proc-vmstat.numa_pte_updates
69522532 -1.6% 68383074 proc-vmstat.pgalloc_normal
2.762e+10 -2.2% 2.701e+10 proc-vmstat.pgfault
68825100 -1.5% 67772256 proc-vmstat.pgfree
8792 ± 29% -92.6% 654.33 ± 23% proc-vmstat.pgmigrate_success
57992 ± 6% +56.2% 90591 ± 3% numa-meminfo.node0.Inactive
57916 ± 6% +56.3% 90513 ± 3% numa-meminfo.node0.Inactive(anon)
37285 ± 12% +36.0% 50709 ± 5% numa-meminfo.node0.SReclaimable
110971 ± 8% +22.7% 136209 ± 8% numa-meminfo.node0.Slab
23601 ± 55% +559.5% 155651 ± 36% numa-meminfo.node1.AnonPages
62484 ± 12% +17.5% 73417 ± 3% numa-meminfo.node1.Inactive
62323 ± 12% +17.2% 73023 ± 4% numa-meminfo.node1.Inactive(anon)
109714 ± 63% -85.6% 15832 ± 96% numa-meminfo.node2.AnonPages
52236 ± 13% +22.7% 64074 ± 3% numa-meminfo.node2.Inactive
51922 ± 12% +23.2% 63963 ± 3% numa-meminfo.node2.Inactive(anon)
60241 ± 11% +21.9% 73442 ± 8% numa-meminfo.node3.Inactive
60077 ± 12% +22.0% 73279 ± 8% numa-meminfo.node3.Inactive(anon)
14093 ± 6% +55.9% 21977 ± 3% numa-vmstat.node0.nr_inactive_anon
9321 ± 12% +36.0% 12675 ± 5% numa-vmstat.node0.nr_slab_reclaimable
14090 ± 6% +56.0% 21977 ± 3% numa-vmstat.node0.nr_zone_inactive_anon
5900 ± 55% +559.4% 38909 ± 36% numa-vmstat.node1.nr_anon_pages
15413 ± 12% +14.8% 17688 ± 4% numa-vmstat.node1.nr_inactive_anon
15413 ± 12% +14.8% 17688 ± 4% numa-vmstat.node1.nr_zone_inactive_anon
27430 ± 63% -85.6% 3960 ± 96% numa-vmstat.node2.nr_anon_pages
12928 ± 12% +20.0% 15508 ± 3% numa-vmstat.node2.nr_inactive_anon
12927 ± 12% +20.0% 15507 ± 3% numa-vmstat.node2.nr_zone_inactive_anon
6229 ± 10% +117.5% 13547 ± 44% numa-vmstat.node3
14669 ± 11% +19.6% 17537 ± 7% numa-vmstat.node3.nr_inactive_anon
14674 ± 11% +19.5% 17541 ± 7% numa-vmstat.node3.nr_zone_inactive_anon
24617 ±141% -100.0% 0.00 latency_stats.avg.io_schedule.nfs_lock_and_join_requests.nfs_updatepage.nfs_write_end.generic_perform_write.nfs_file_write.__vfs_write.vfs_write.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe
5049 ±105% -99.4% 28.33 ± 82% latency_stats.avg.call_rwsem_down_write_failed.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
152457 ± 27% +233.6% 508656 ± 92% latency_stats.avg.max
0.00 +3.9e+107% 390767 ±141% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_openat
24617 ±141% -100.0% 0.00 latency_stats.max.io_schedule.nfs_lock_and_join_requests.nfs_updatepage.nfs_write_end.generic_perform_write.nfs_file_write.__vfs_write.vfs_write.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe
4240 ±141% -100.0% 0.00 latency_stats.max.call_rwsem_down_write_failed.do_unlinkat.do_syscall_64.entry_SYSCALL_64_after_hwframe
8565 ± 70% -99.1% 80.33 ±115% latency_stats.max.call_rwsem_down_write_failed.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
204835 ± 6% +457.6% 1142244 ±114% latency_stats.max.max
0.00 +5.1e+105% 5057 ±141% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_access.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_openat.do_filp_open
0.00 +1e+108% 995083 ±141% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_openat
13175 ± 4% -100.0% 0.00 latency_stats.sum.io_schedule.__lock_page_or_retry.filemap_fault.__do_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault.page_fault
24617 ±141% -100.0% 0.00 latency_stats.sum.io_schedule.nfs_lock_and_join_requests.nfs_updatepage.nfs_write_end.generic_perform_write.nfs_file_write.__vfs_write.vfs_write.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe
4260 ±141% -100.0% 0.00 latency_stats.sum.call_rwsem_down_write_failed.do_unlinkat.do_syscall_64.entry_SYSCALL_64_after_hwframe
8640 ± 70% -97.5% 216.33 ±108% latency_stats.sum.call_rwsem_down_write_failed.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
6673 ± 89% -92.8% 477.67 ± 74% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat
0.00 +4.2e+105% 4228 ±130% latency_stats.sum.io_schedule.__lock_page_killable.__lock_page_or_retry.filemap_fault.__do_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault.page_fault
0.00 +7.5e+105% 7450 ± 98% latency_stats.sum.io_schedule.__lock_page_or_retry.filemap_fault.__do_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault.page_fault
0.00 +1.3e+106% 13050 ±141% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_access.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_openat.do_filp_open
0.00 +1.5e+110% 1.508e+08 ±141% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_openat
0.97 -0.0 0.94 perf-stat.branch-miss-rate%
1.329e+11 -2.6% 1.294e+11 perf-stat.branch-misses
2.254e+11 -1.9% 2.21e+11 perf-stat.cache-references
18308779 ± 4% -12.8% 15969618 ± 5% perf-stat.context-switches
3.20 +1.8% 3.26 perf-stat.cpi
2.233e+14 +2.7% 2.293e+14 perf-stat.cpu-cycles
4.01 -0.2 3.83 perf-stat.dTLB-store-miss-rate%
4.51e+11 -2.2% 4.41e+11 perf-stat.dTLB-store-misses
1.08e+13 +2.6% 1.109e+13 perf-stat.dTLB-stores
3.158e+10 ± 5% +16.8% 3.689e+10 ± 2% perf-stat.iTLB-load-misses
2214 ± 5% -13.8% 1907 ± 2% perf-stat.instructions-per-iTLB-miss
0.31 -1.8% 0.31 perf-stat.ipc
2.762e+10 -2.2% 2.701e+10 perf-stat.minor-faults
1.535e+10 -11.2% 1.362e+10 perf-stat.node-loads
9.75 +1.1 10.89 perf-stat.node-store-miss-rate%
3.012e+09 +10.6% 3.332e+09 ± 2% perf-stat.node-store-misses
2.787e+10 -2.2% 2.725e+10 perf-stat.node-stores
2.762e+10 -2.2% 2.701e+10 perf-stat.page-faults
759458 +3.2% 783404 perf-stat.path-length
246.39 ± 15% -20.4% 196.12 ± 6% sched_debug.cfs_rq:/.load_avg.max
0.21 ± 3% +9.0% 0.23 ± 4% sched_debug.cfs_rq:/.nr_running.stddev
16.64 ± 27% +61.0% 26.79 ± 17% sched_debug.cfs_rq:/.nr_spread_over.max
75.15 -14.4% 64.30 ± 4% sched_debug.cfs_rq:/.util_avg.stddev
178.80 ± 3% +25.4% 224.12 ± 7% sched_debug.cfs_rq:/.util_est_enqueued.avg
1075 ± 5% -12.3% 943.36 ± 2% sched_debug.cfs_rq:/.util_est_enqueued.max
2093630 ± 27% -36.1% 1337941 ± 16% sched_debug.cpu.avg_idle.max
297057 ± 11% +37.8% 409294 ± 14% sched_debug.cpu.avg_idle.min
293240 ± 55% -62.3% 110571 ± 13% sched_debug.cpu.avg_idle.stddev
770075 ± 9% -19.3% 621136 ± 12% sched_debug.cpu.max_idle_balance_cost.max
48919 ± 46% -66.9% 16190 ± 81% sched_debug.cpu.max_idle_balance_cost.stddev
21716 ± 5% -16.8% 18061 ± 7% sched_debug.cpu.nr_switches.min
21519 ± 5% -17.7% 17700 ± 7% sched_debug.cpu.sched_count.min
10586 ± 5% -18.1% 8669 ± 7% sched_debug.cpu.sched_goidle.avg
14183 ± 3% -17.6% 11693 ± 5% sched_debug.cpu.sched_goidle.max
10322 ± 5% -18.6% 8407 ± 7% sched_debug.cpu.sched_goidle.min
400.99 ± 8% -13.0% 348.75 ± 3% sched_debug.cpu.sched_goidle.stddev
5459 ± 8% +10.0% 6006 ± 3% sched_debug.cpu.ttwu_local.avg
8.47 ± 42% +345.8% 37.73 ± 77% sched_debug.rt_rq:/.rt_time.max
0.61 ± 42% +343.0% 2.72 ± 77% sched_debug.rt_rq:/.rt_time.stddev
91.98 -30.9 61.11 ± 70% perf-profile.calltrace.cycles-pp.testcase
9.05 -9.1 0.00 perf-profile.calltrace.cycles-pp.__do_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
8.91 -8.9 0.00 perf-profile.calltrace.cycles-pp.shmem_fault.__do_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
8.06 -8.1 0.00 perf-profile.calltrace.cycles-pp.shmem_getpage_gfp.shmem_fault.__do_fault.__handle_mm_fault.handle_mm_fault
7.59 -7.6 0.00 perf-profile.calltrace.cycles-pp.find_lock_entry.shmem_getpage_gfp.shmem_fault.__do_fault.__handle_mm_fault
7.44 -7.4 0.00 perf-profile.calltrace.cycles-pp.finish_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
7.28 -7.3 0.00 perf-profile.calltrace.cycles-pp.alloc_set_pte.finish_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
5.31 -5.3 0.00 perf-profile.calltrace.cycles-pp.page_add_file_rmap.alloc_set_pte.finish_fault.__handle_mm_fault.handle_mm_fault
8.08 -2.8 5.30 ± 70% perf-profile.calltrace.cycles-pp.native_irq_return_iret.testcase
5.95 -2.1 3.83 ± 70% perf-profile.calltrace.cycles-pp.find_get_entry.find_lock_entry.shmem_getpage_gfp.shmem_fault.__do_fault
5.95 -2.0 3.93 ± 70% perf-profile.calltrace.cycles-pp.swapgs_restore_regs_and_return_to_usermode.testcase
3.10 -1.1 2.01 ± 70% perf-profile.calltrace.cycles-pp.__perf_sw_event.__do_page_fault.do_page_fault.page_fault.testcase
2.36 -0.8 1.55 ± 70% perf-profile.calltrace.cycles-pp.___perf_sw_event.__perf_sw_event.__do_page_fault.do_page_fault.page_fault
1.08 -0.4 0.70 ± 70% perf-profile.calltrace.cycles-pp.do_page_fault.testcase
0.82 -0.3 0.54 ± 70% perf-profile.calltrace.cycles-pp.trace_graph_entry.do_page_fault.testcase
0.77 -0.3 0.50 ± 70% perf-profile.calltrace.cycles-pp.ftrace_graph_caller.__do_page_fault.do_page_fault.page_fault.testcase
0.59 -0.2 0.37 ± 70% perf-profile.calltrace.cycles-pp.down_read_trylock.__do_page_fault.do_page_fault.page_fault.testcase
91.98 -30.9 61.11 ± 70% perf-profile.children.cycles-pp.testcase
9.14 -3.2 5.99 ± 70% perf-profile.children.cycles-pp.__do_fault
8.20 -2.8 5.40 ± 70% perf-profile.children.cycles-pp.shmem_getpage_gfp
8.08 -2.8 5.31 ± 70% perf-profile.children.cycles-pp.native_irq_return_iret
6.08 -2.2 3.92 ± 70% perf-profile.children.cycles-pp.find_get_entry
6.08 -2.1 3.96 ± 70% perf-profile.children.cycles-pp.sync_regs
5.95 -2.0 3.93 ± 70% perf-profile.children.cycles-pp.swapgs_restore_regs_and_return_to_usermode
4.12 -1.4 2.73 ± 70% perf-profile.children.cycles-pp.ftrace_graph_caller
3.65 -1.2 2.42 ± 70% perf-profile.children.cycles-pp.prepare_ftrace_return
3.18 -1.1 2.07 ± 70% perf-profile.children.cycles-pp.__perf_sw_event
2.34 -0.8 1.52 ± 70% perf-profile.children.cycles-pp.fault_dirty_shared_page
0.80 -0.3 0.50 ± 70% perf-profile.children.cycles-pp._raw_spin_lock
0.76 -0.3 0.50 ± 70% perf-profile.children.cycles-pp.tlb_flush_mmu_free
0.61 -0.2 0.39 ± 70% perf-profile.children.cycles-pp.down_read_trylock
0.48 ± 2% -0.2 0.28 ± 70% perf-profile.children.cycles-pp.pmd_devmap_trans_unstable
0.26 ± 6% -0.1 0.15 ± 71% perf-profile.children.cycles-pp.ktime_get
0.20 ± 2% -0.1 0.12 ± 70% perf-profile.children.cycles-pp.perf_exclude_event
0.22 ± 2% -0.1 0.13 ± 70% perf-profile.children.cycles-pp._cond_resched
0.17 -0.1 0.11 ± 70% perf-profile.children.cycles-pp.page_rmapping
0.13 -0.1 0.07 ± 70% perf-profile.children.cycles-pp.rcu_all_qs
0.07 -0.0 0.04 ± 70% perf-profile.children.cycles-pp.ftrace_lookup_ip
22.36 -7.8 14.59 ± 70% perf-profile.self.cycles-pp.testcase
8.08 -2.8 5.31 ± 70% perf-profile.self.cycles-pp.native_irq_return_iret
6.08 -2.1 3.96 ± 70% perf-profile.self.cycles-pp.sync_regs
5.81 -2.0 3.84 ± 70% perf-profile.self.cycles-pp.swapgs_restore_regs_and_return_to_usermode
3.27 -1.6 1.65 ± 70% perf-profile.self.cycles-pp.__handle_mm_fault
3.79 -1.4 2.36 ± 70% perf-profile.self.cycles-pp.find_get_entry
3.80 -1.3 2.53 ± 70% perf-profile.self.cycles-pp.trace_graph_entry
1.10 -0.5 0.57 ± 70% perf-profile.self.cycles-pp.alloc_set_pte
1.24 -0.4 0.81 ± 70% perf-profile.self.cycles-pp.shmem_fault
0.80 -0.3 0.50 ± 70% perf-profile.self.cycles-pp._raw_spin_lock
0.81 -0.3 0.51 ± 70% perf-profile.self.cycles-pp.find_lock_entry
0.80 ± 2% -0.3 0.51 ± 70% perf-profile.self.cycles-pp.__perf_sw_event
0.61 -0.2 0.38 ± 70% perf-profile.self.cycles-pp.down_read_trylock
0.60 -0.2 0.39 ± 70% perf-profile.self.cycles-pp.shmem_getpage_gfp
0.48 -0.2 0.27 ± 70% perf-profile.self.cycles-pp.pmd_devmap_trans_unstable
0.47 -0.2 0.30 ± 70% perf-profile.self.cycles-pp.file_update_time
0.34 -0.1 0.22 ± 70% perf-profile.self.cycles-pp.do_page_fault
0.22 ± 4% -0.1 0.11 ± 70% perf-profile.self.cycles-pp.__do_fault
0.25 ± 5% -0.1 0.14 ± 71% perf-profile.self.cycles-pp.ktime_get
0.21 ± 2% -0.1 0.12 ± 70% perf-profile.self.cycles-pp.finish_fault
0.23 ± 2% -0.1 0.14 ± 70% perf-profile.self.cycles-pp.fault_dirty_shared_page
0.22 ± 2% -0.1 0.14 ± 70% perf-profile.self.cycles-pp.prepare_exit_to_usermode
0.20 ± 2% -0.1 0.12 ± 70% perf-profile.self.cycles-pp.perf_exclude_event
0.16 -0.1 0.10 ± 70% perf-profile.self.cycles-pp._cond_resched
0.13 -0.1 0.07 ± 70% perf-profile.self.cycles-pp.rcu_all_qs
0.07 -0.0 0.04 ± 70% perf-profile.self.cycles-pp.ftrace_lookup_ip
=========================================================================================
tbox_group/testcase/rootfs/kconfig/compiler/nr_task/thp_enabled/test/cpufreq_governor:
lkp-skl-4sp1/will-it-scale/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/100%/always/context_switch1/performance
commit:
ba98a1cdad71d259a194461b3a61471b49b14df1
a7a8993bfe3ccb54ad468b9f1799649e4ad1ff12
ba98a1cdad71d259 a7a8993bfe3ccb54ad468b9f17
---------------- --------------------------
fail:runs %reproduction fail:runs
| | |
:3 33% 1:3 dmesg.WARNING:at#for_ip_interrupt_entry/0x
:3 33% 1:3 dmesg.WARNING:at#for_ip_ret_from_intr/0x
:3 67% 2:3 kmsg.pstore:crypto_comp_decompress_failed,ret=
:3 67% 2:3 kmsg.pstore:decompression_failed
%stddev %change %stddev
\ | \
223910 -1.3% 220930 will-it-scale.per_process_ops
233722 -1.0% 231288 will-it-scale.per_thread_ops
6.001e+08 ± 13% +31.4% 7.887e+08 ± 4% will-it-scale.time.involuntary_context_switches
18003 ± 4% +10.9% 19956 will-it-scale.time.minor_page_faults
1.29e+10 -2.5% 1.258e+10 will-it-scale.time.voluntary_context_switches
87865617 -1.2% 86826277 will-it-scale.workload
2880329 ± 2% +5.4% 3034904 interrupts.CAL:Function_call_interrupts
7695018 -23.3% 5905066 ± 8% meminfo.DirectMap2M
0.00 ± 39% -0.0 0.00 ± 78% mpstat.cpu.iowait%
4621 ± 12% +13.4% 5241 proc-vmstat.numa_hint_faults_local
715714 +27.6% 913142 ± 13% softirqs.SCHED
515653 ± 6% -20.0% 412650 ± 15% turbostat.C1
43643516 -1.2% 43127031 vmstat.system.cs
2893393 ± 4% -23.6% 2210524 ± 10% cpuidle.C1.time
518051 ± 6% -19.9% 415081 ± 15% cpuidle.C1.usage
23.10 +22.9% 28.38 ± 9% boot-time.boot
18.38 +23.2% 22.64 ± 12% boot-time.dhcp
5216 +5.0% 5478 ± 2% boot-time.idle
963.76 ± 44% +109.7% 2021 ± 34% irq_exception_noise.__do_page_fault.sum
6.33 ± 14% +726.3% 52.33 ± 62% irq_exception_noise.irq_time
56524 ± 7% -18.8% 45915 ± 4% irq_exception_noise.softirq_time
6.001e+08 ± 13% +31.4% 7.887e+08 ± 4% time.involuntary_context_switches
18003 ± 4% +10.9% 19956 time.minor_page_faults
1.29e+10 -2.5% 1.258e+10 time.voluntary_context_switches
1386 ± 7% +15.4% 1600 ± 11% slabinfo.scsi_sense_cache.active_objs
1386 ± 7% +15.4% 1600 ± 11% slabinfo.scsi_sense_cache.num_objs
1427 ± 5% -8.9% 1299 ± 2% slabinfo.task_group.active_objs
1427 ± 5% -8.9% 1299 ± 2% slabinfo.task_group.num_objs
65519 ± 12% +20.6% 79014 ± 16% numa-meminfo.node0.SUnreclaim
8484 -11.9% 7475 ± 7% numa-meminfo.node1.KernelStack
9264 ± 26% -33.7% 6146 ± 7% numa-meminfo.node1.Mapped
2138 ± 61% +373.5% 10127 ± 92% numa-meminfo.node3.Inactive
2059 ± 61% +387.8% 10046 ± 93% numa-meminfo.node3.Inactive(anon)
16379 ± 12% +20.6% 19752 ± 16% numa-vmstat.node0.nr_slab_unreclaimable
8483 -11.9% 7474 ± 7% numa-vmstat.node1.nr_kernel_stack
6250 ± 29% -42.8% 3575 ± 24% numa-vmstat.node2
3798 ± 17% +63.7% 6218 ± 5% numa-vmstat.node3
543.00 ± 61% +368.1% 2541 ± 91% numa-vmstat.node3.nr_inactive_anon
543.33 ± 61% +367.8% 2541 ± 91% numa-vmstat.node3.nr_zone_inactive_anon
4.138e+13 -1.1% 4.09e+13 perf-stat.branch-instructions
6.569e+11 -2.0% 6.441e+11 perf-stat.branch-misses
2.645e+10 -1.2% 2.613e+10 perf-stat.context-switches
1.21 +1.2% 1.23 perf-stat.cpi
153343 ± 2% -12.1% 134776 perf-stat.cpu-migrations
5.966e+13 -1.3% 5.889e+13 perf-stat.dTLB-loads
3.736e+13 -1.2% 3.69e+13 perf-stat.dTLB-stores
5.85 ± 15% +8.8 14.67 ± 9% perf-stat.iTLB-load-miss-rate%
3.736e+09 ± 17% +161.3% 9.76e+09 ± 11% perf-stat.iTLB-load-misses
5.987e+10 -5.4% 5.667e+10 perf-stat.iTLB-loads
2.079e+14 -1.2% 2.054e+14 perf-stat.instructions
57547 ± 18% -62.9% 21340 ± 11% perf-stat.instructions-per-iTLB-miss
0.82 -1.2% 0.81 perf-stat.ipc
27502531 ± 8% +9.5% 30122136 ± 3% perf-stat.node-store-misses
1449 ± 27% -34.6% 948.85 sched_debug.cfs_rq:/.load.min
319416 ±115% -188.5% -282549 sched_debug.cfs_rq:/.spread0.avg
657044 ± 55% -88.3% 76887 ± 23% sched_debug.cfs_rq:/.spread0.max
-1525243 +54.6% -2357898 sched_debug.cfs_rq:/.spread0.min
101614 ± 6% +30.6% 132713 ± 19% sched_debug.cpu.avg_idle.stddev
11.54 ± 41% -61.2% 4.48 sched_debug.cpu.cpu_load[1].avg
1369 ± 67% -98.5% 20.67 ± 48% sched_debug.cpu.cpu_load[1].max
99.29 ± 67% -97.6% 2.35 ± 26% sched_debug.cpu.cpu_load[1].stddev
9.58 ± 38% -55.2% 4.29 sched_debug.cpu.cpu_load[2].avg
1024 ± 68% -98.5% 15.27 ± 36% sched_debug.cpu.cpu_load[2].max
74.51 ± 67% -97.3% 1.99 ± 15% sched_debug.cpu.cpu_load[2].stddev
7.37 ± 29% -42.0% 4.28 sched_debug.cpu.cpu_load[3].avg
600.58 ± 68% -97.9% 12.48 ± 20% sched_debug.cpu.cpu_load[3].max
43.98 ± 66% -95.8% 1.83 ± 5% sched_debug.cpu.cpu_load[3].stddev
5.95 ± 19% -28.1% 4.28 sched_debug.cpu.cpu_load[4].avg
325.39 ± 67% -96.4% 11.67 ± 10% sched_debug.cpu.cpu_load[4].max
24.19 ± 65% -92.5% 1.81 ± 3% sched_debug.cpu.cpu_load[4].stddev
907.23 ± 4% -14.1% 779.70 ± 10% sched_debug.cpu.nr_load_updates.stddev
0.00 ± 83% +122.5% 0.00 sched_debug.rt_rq:/.rt_time.min
8.49 ± 2% -0.3 8.21 ± 2% perf-profile.calltrace.cycles-pp.dequeue_task_fair.__schedule.schedule.pipe_wait.pipe_read
57.28 -0.3 57.01 perf-profile.calltrace.cycles-pp.read
5.06 -0.2 4.85 perf-profile.calltrace.cycles-pp.select_task_rq_fair.try_to_wake_up.autoremove_wake_function.__wake_up_common.__wake_up_common_lock
4.98 -0.2 4.78 perf-profile.calltrace.cycles-pp.__switch_to.read
3.55 -0.2 3.39 ± 2% perf-profile.calltrace.cycles-pp.syscall_return_via_sysret.read
2.72 -0.1 2.60 perf-profile.calltrace.cycles-pp.reweight_entity.enqueue_task_fair.ttwu_do_activate.try_to_wake_up.autoremove_wake_function
2.67 -0.1 2.57 ± 2% perf-profile.calltrace.cycles-pp.reweight_entity.dequeue_task_fair.__schedule.schedule.pipe_wait
3.40 -0.1 3.31 perf-profile.calltrace.cycles-pp.syscall_return_via_sysret.write
3.77 -0.1 3.68 perf-profile.calltrace.cycles-pp.select_idle_sibling.select_task_rq_fair.try_to_wake_up.autoremove_wake_function.__wake_up_common
1.95 -0.1 1.88 perf-profile.calltrace.cycles-pp.copy_page_to_iter.pipe_read.__vfs_read.vfs_read.ksys_read
2.19 -0.1 2.13 perf-profile.calltrace.cycles-pp.__switch_to_asm.read
1.30 -0.1 1.25 perf-profile.calltrace.cycles-pp.update_curr.reweight_entity.enqueue_task_fair.ttwu_do_activate.try_to_wake_up
1.27 -0.1 1.22 ± 2% perf-profile.calltrace.cycles-pp.update_curr.reweight_entity.dequeue_task_fair.__schedule.schedule
2.29 -0.0 2.24 perf-profile.calltrace.cycles-pp.load_new_mm_cr3.switch_mm_irqs_off.__schedule.schedule.pipe_wait
0.96 -0.0 0.92 perf-profile.calltrace.cycles-pp.__calc_delta.update_curr.reweight_entity.dequeue_task_fair.__schedule
0.85 -0.0 0.81 ± 3% perf-profile.calltrace.cycles-pp.cpumask_next_wrap.select_idle_sibling.select_task_rq_fair.try_to_wake_up.autoremove_wake_function
1.63 -0.0 1.59 perf-profile.calltrace.cycles-pp.native_write_msr.read
0.72 -0.0 0.69 perf-profile.calltrace.cycles-pp.copyout.copy_page_to_iter.pipe_read.__vfs_read.vfs_read
0.65 ± 2% -0.0 0.62 perf-profile.calltrace.cycles-pp._raw_spin_lock_irqsave.try_to_wake_up.autoremove_wake_function.__wake_up_common.__wake_up_common_lock
0.61 -0.0 0.58 ± 2% perf-profile.calltrace.cycles-pp.find_next_bit.cpumask_next_wrap.select_idle_sibling.select_task_rq_fair.try_to_wake_up
0.88 -0.0 0.85 perf-profile.calltrace.cycles-pp.touch_atime.pipe_read.__vfs_read.vfs_read.ksys_read
0.80 -0.0 0.77 ± 2% perf-profile.calltrace.cycles-pp.___perf_sw_event.__schedule.schedule.pipe_wait.pipe_read
0.82 -0.0 0.79 perf-profile.calltrace.cycles-pp.prepare_to_wait.pipe_wait.pipe_read.__vfs_read.vfs_read
0.72 -0.0 0.70 perf-profile.calltrace.cycles-pp.mutex_lock.pipe_write.__vfs_write.vfs_write.ksys_write
0.56 ± 2% -0.0 0.53 perf-profile.calltrace.cycles-pp.update_rq_clock.try_to_wake_up.autoremove_wake_function.__wake_up_common.__wake_up_common_lock
0.83 -0.0 0.81 perf-profile.calltrace.cycles-pp.__wake_up_common_lock.pipe_read.__vfs_read.vfs_read.ksys_read
42.40 +0.3 42.69 perf-profile.calltrace.cycles-pp.write
31.80 +0.4 32.18 perf-profile.calltrace.cycles-pp.__vfs_read.vfs_read.ksys_read.do_syscall_64.entry_SYSCALL_64_after_hwframe
24.35 +0.5 24.84 perf-profile.calltrace.cycles-pp.pipe_wait.pipe_read.__vfs_read.vfs_read.ksys_read
20.36 +0.6 20.92 ± 2% perf-profile.calltrace.cycles-pp.try_to_wake_up.autoremove_wake_function.__wake_up_common.__wake_up_common_lock.pipe_write
22.01 +0.6 22.58 perf-profile.calltrace.cycles-pp.schedule.pipe_wait.pipe_read.__vfs_read.vfs_read
21.87 +0.6 22.46 perf-profile.calltrace.cycles-pp.__schedule.schedule.pipe_wait.pipe_read.__vfs_read
3.15 ± 11% +1.0 4.12 ± 14% perf-profile.calltrace.cycles-pp.ttwu_do_wakeup.try_to_wake_up.autoremove_wake_function.__wake_up_common.__wake_up_common_lock
1.07 ± 34% +1.1 2.12 ± 31% perf-profile.calltrace.cycles-pp.tracing_record_taskinfo_sched_switch.__schedule.schedule.pipe_wait.pipe_read
0.66 ± 75% +1.1 1.72 ± 37% perf-profile.calltrace.cycles-pp.trace_save_cmdline.tracing_record_taskinfo.ttwu_do_wakeup.try_to_wake_up.autoremove_wake_function
0.75 ± 74% +1.1 1.88 ± 34% perf-profile.calltrace.cycles-pp.tracing_record_taskinfo.ttwu_do_wakeup.try_to_wake_up.autoremove_wake_function.__wake_up_common
0.69 ± 76% +1.2 1.85 ± 36% perf-profile.calltrace.cycles-pp.trace_save_cmdline.tracing_record_taskinfo_sched_switch.__schedule.schedule.pipe_wait
8.73 ± 2% -0.3 8.45 perf-profile.children.cycles-pp.dequeue_task_fair
57.28 -0.3 57.01 perf-profile.children.cycles-pp.read
6.95 -0.2 6.70 perf-profile.children.cycles-pp.syscall_return_via_sysret
5.57 -0.2 5.35 perf-profile.children.cycles-pp.reweight_entity
5.26 -0.2 5.05 perf-profile.children.cycles-pp.select_task_rq_fair
5.19 -0.2 4.99 perf-profile.children.cycles-pp.__switch_to
4.90 -0.2 4.73 ± 2% perf-profile.children.cycles-pp.update_curr
1.27 -0.1 1.13 ± 8% perf-profile.children.cycles-pp.fsnotify
3.92 -0.1 3.83 perf-profile.children.cycles-pp.select_idle_sibling
2.01 -0.1 1.93 perf-profile.children.cycles-pp.__calc_delta
2.14 -0.1 2.06 perf-profile.children.cycles-pp.copy_page_to_iter
1.58 -0.1 1.51 perf-profile.children.cycles-pp._raw_spin_unlock_irqrestore
2.90 -0.1 2.84 perf-profile.children.cycles-pp.update_cfs_group
1.93 -0.1 1.87 perf-profile.children.cycles-pp._raw_spin_lock_irqsave
2.35 -0.1 2.29 perf-profile.children.cycles-pp.__switch_to_asm
1.33 -0.1 1.27 ± 3% perf-profile.children.cycles-pp.cpumask_next_wrap
2.57 -0.1 2.52 perf-profile.children.cycles-pp.load_new_mm_cr3
1.53 -0.1 1.47 ± 2% perf-profile.children.cycles-pp.__fdget_pos
1.11 -0.0 1.07 ± 2% perf-profile.children.cycles-pp.find_next_bit
1.18 -0.0 1.14 perf-profile.children.cycles-pp.update_rq_clock
0.88 -0.0 0.83 perf-profile.children.cycles-pp.copy_user_generic_unrolled
1.70 -0.0 1.65 perf-profile.children.cycles-pp.native_write_msr
0.97 -0.0 0.93 ± 2% perf-profile.children.cycles-pp.account_entity_dequeue
0.59 -0.0 0.56 perf-profile.children.cycles-pp.finish_task_switch
0.91 -0.0 0.88 perf-profile.children.cycles-pp.touch_atime
0.69 -0.0 0.65 perf-profile.children.cycles-pp.account_entity_enqueue
2.13 -0.0 2.09 perf-profile.children.cycles-pp.mutex_lock
0.32 ± 3% -0.0 0.29 ± 4% perf-profile.children.cycles-pp.__sb_start_write
0.84 -0.0 0.81 ± 2% perf-profile.children.cycles-pp.___perf_sw_event
0.89 -0.0 0.87 perf-profile.children.cycles-pp.prepare_to_wait
0.73 -0.0 0.71 perf-profile.children.cycles-pp.copyout
0.31 ± 2% -0.0 0.28 ± 3% perf-profile.children.cycles-pp.__list_del_entry_valid
0.46 ± 2% -0.0 0.44 perf-profile.children.cycles-pp.anon_pipe_buf_release
0.38 -0.0 0.36 ± 3% perf-profile.children.cycles-pp.idle_cpu
0.32 -0.0 0.30 ± 2% perf-profile.children.cycles-pp.__x64_sys_read
0.21 ± 2% -0.0 0.20 ± 2% perf-profile.children.cycles-pp.deactivate_task
0.13 -0.0 0.12 ± 4% perf-profile.children.cycles-pp.timespec_trunc
0.09 -0.0 0.08 perf-profile.children.cycles-pp.iov_iter_init
0.08 -0.0 0.07 perf-profile.children.cycles-pp.native_load_tls
0.11 ± 4% +0.0 0.12 perf-profile.children.cycles-pp.tick_sched_timer
0.08 ± 5% +0.0 0.10 ± 4% perf-profile.children.cycles-pp.finish_wait
0.38 ± 2% +0.0 0.40 ± 2% perf-profile.children.cycles-pp.file_update_time
0.31 +0.0 0.33 ± 2% perf-profile.children.cycles-pp.smp_apic_timer_interrupt
0.24 ± 3% +0.0 0.26 ± 3% perf-profile.children.cycles-pp.rcu_all_qs
0.39 +0.0 0.41 perf-profile.children.cycles-pp._cond_resched
0.05 +0.0 0.07 ± 6% perf-profile.children.cycles-pp.default_wake_function
0.23 ± 2% +0.0 0.26 ± 3% perf-profile.children.cycles-pp.current_time
0.30 +0.0 0.35 ± 2% perf-profile.children.cycles-pp.generic_pipe_buf_confirm
0.52 +0.1 0.58 perf-profile.children.cycles-pp.entry_SYSCALL_64_stage2
0.00 +0.1 0.08 ± 5% perf-profile.children.cycles-pp.hrtick_update
42.40 +0.3 42.69 perf-profile.children.cycles-pp.write
31.86 +0.4 32.26 perf-profile.children.cycles-pp.__vfs_read
24.40 +0.5 24.89 perf-profile.children.cycles-pp.pipe_wait
20.40 +0.6 20.96 ± 2% perf-profile.children.cycles-pp.try_to_wake_up
22.30 +0.6 22.89 perf-profile.children.cycles-pp.schedule
22.22 +0.6 22.84 perf-profile.children.cycles-pp.__schedule
0.99 ± 36% +0.9 1.94 ± 32% perf-profile.children.cycles-pp.tracing_record_taskinfo
3.30 ± 10% +1.0 4.27 ± 13% perf-profile.children.cycles-pp.ttwu_do_wakeup
1.14 ± 31% +1.1 2.24 ± 29% perf-profile.children.cycles-pp.tracing_record_taskinfo_sched_switch
1.59 ± 46% +2.0 3.60 ± 36% perf-profile.children.cycles-pp.trace_save_cmdline
6.95 -0.2 6.70 perf-profile.self.cycles-pp.syscall_return_via_sysret
5.19 -0.2 4.99 perf-profile.self.cycles-pp.__switch_to
1.27 -0.1 1.12 ± 8% perf-profile.self.cycles-pp.fsnotify
1.49 -0.1 1.36 perf-profile.self.cycles-pp.select_task_rq_fair
2.47 -0.1 2.37 ± 2% perf-profile.self.cycles-pp.reweight_entity
0.29 -0.1 0.19 ± 2% perf-profile.self.cycles-pp.ksys_read
1.50 -0.1 1.42 perf-profile.self.cycles-pp._raw_spin_unlock_irqrestore
2.01 -0.1 1.93 perf-profile.self.cycles-pp.__calc_delta
1.93 -0.1 1.86 perf-profile.self.cycles-pp._raw_spin_lock_irqsave
1.47 -0.1 1.40 perf-profile.self.cycles-pp.dequeue_task_fair
2.90 -0.1 2.84 perf-profile.self.cycles-pp.update_cfs_group
1.29 -0.1 1.23 perf-profile.self.cycles-pp.do_syscall_64
2.57 -0.1 2.52 perf-profile.self.cycles-pp.load_new_mm_cr3
2.28 -0.1 2.23 perf-profile.self.cycles-pp.__switch_to_asm
1.80 -0.1 1.75 perf-profile.self.cycles-pp.select_idle_sibling
1.11 -0.0 1.07 ± 2% perf-profile.self.cycles-pp.find_next_bit
0.87 -0.0 0.83 perf-profile.self.cycles-pp.copy_user_generic_unrolled
0.43 -0.0 0.39 ± 2% perf-profile.self.cycles-pp.dequeue_entity
1.70 -0.0 1.65 perf-profile.self.cycles-pp.native_write_msr
0.92 -0.0 0.88 ± 2% perf-profile.self.cycles-pp.account_entity_dequeue
0.48 -0.0 0.44 perf-profile.self.cycles-pp.finish_task_switch
0.77 -0.0 0.74 perf-profile.self.cycles-pp.___perf_sw_event
0.66 -0.0 0.63 perf-profile.self.cycles-pp.account_entity_enqueue
0.46 ± 2% -0.0 0.43 ± 2% perf-profile.self.cycles-pp.anon_pipe_buf_release
0.32 ± 3% -0.0 0.29 ± 4% perf-profile.self.cycles-pp.__sb_start_write
0.31 ± 2% -0.0 0.28 ± 3% perf-profile.self.cycles-pp.__list_del_entry_valid
0.38 -0.0 0.36 ± 3% perf-profile.self.cycles-pp.idle_cpu
0.19 ± 4% -0.0 0.17 ± 2% perf-profile.self.cycles-pp.__fdget_pos
0.50 -0.0 0.48 perf-profile.self.cycles-pp.__atime_needs_update
0.23 ± 2% -0.0 0.21 ± 3% perf-profile.self.cycles-pp.touch_atime
0.31 -0.0 0.30 perf-profile.self.cycles-pp.__x64_sys_read
0.21 ± 2% -0.0 0.20 ± 2% perf-profile.self.cycles-pp.deactivate_task
0.21 ± 2% -0.0 0.19 perf-profile.self.cycles-pp.check_preempt_curr
0.40 -0.0 0.39 perf-profile.self.cycles-pp.autoremove_wake_function
0.40 -0.0 0.38 perf-profile.self.cycles-pp.copy_user_enhanced_fast_string
0.27 -0.0 0.26 perf-profile.self.cycles-pp.pipe_wait
0.13 -0.0 0.12 ± 4% perf-profile.self.cycles-pp.timespec_trunc
0.22 ± 2% -0.0 0.20 ± 2% perf-profile.self.cycles-pp.put_prev_entity
0.09 -0.0 0.08 perf-profile.self.cycles-pp.iov_iter_init
0.08 -0.0 0.07 perf-profile.self.cycles-pp.native_load_tls
0.11 -0.0 0.10 perf-profile.self.cycles-pp.schedule
0.12 ± 4% +0.0 0.13 perf-profile.self.cycles-pp.copyin
0.08 ± 5% +0.0 0.10 ± 4% perf-profile.self.cycles-pp.finish_wait
0.18 +0.0 0.20 ± 2% perf-profile.self.cycles-pp.ttwu_do_activate
0.28 ± 2% +0.0 0.30 ± 2% perf-profile.self.cycles-pp._cond_resched
0.24 ± 3% +0.0 0.26 ± 3% perf-profile.self.cycles-pp.rcu_all_qs
0.05 +0.0 0.07 ± 6% perf-profile.self.cycles-pp.default_wake_function
0.08 ± 14% +0.0 0.11 ± 14% perf-profile.self.cycles-pp.tracing_record_taskinfo_sched_switch
0.51 +0.0 0.55 ± 4% perf-profile.self.cycles-pp.vfs_write
0.30 +0.0 0.35 ± 2% perf-profile.self.cycles-pp.generic_pipe_buf_confirm
0.52 +0.1 0.58 perf-profile.self.cycles-pp.entry_SYSCALL_64_stage2
0.00 +0.1 0.08 ± 5% perf-profile.self.cycles-pp.hrtick_update
1.97 +0.1 2.07 ± 2% perf-profile.self.cycles-pp.switch_mm_irqs_off
1.59 ± 46% +2.0 3.60 ± 36% perf-profile.self.cycles-pp.trace_save_cmdline
=========================================================================================
tbox_group/testcase/rootfs/kconfig/compiler/nr_task/thp_enabled/test/cpufreq_governor:
lkp-skl-4sp1/will-it-scale/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/100%/never/brk1/performance
commit:
ba98a1cdad71d259a194461b3a61471b49b14df1
a7a8993bfe3ccb54ad468b9f1799649e4ad1ff12
ba98a1cdad71d259 a7a8993bfe3ccb54ad468b9f17
---------------- --------------------------
fail:runs %reproduction fail:runs
| | |
:3 33% 1:3 kmsg.pstore:crypto_comp_decompress_failed,ret=
:3 33% 1:3 kmsg.pstore:decompression_failed
%stddev %change %stddev
\ | \
997317 -2.0% 977778 will-it-scale.per_process_ops
957.00 -7.9% 881.00 ± 3% will-it-scale.per_thread_ops
18.42 ± 3% -8.2% 16.90 will-it-scale.time.user_time
1.917e+08 -2.0% 1.879e+08 will-it-scale.workload
18.42 ± 3% -8.2% 16.90 time.user_time
0.30 ± 11% -36.7% 0.19 ± 11% turbostat.Pkg%pc2
57539 ± 51% +140.6% 138439 ± 31% meminfo.CmaFree
410877 ± 11% -22.1% 320082 ± 22% meminfo.DirectMap4k
343575 ± 27% +71.3% 588703 ± 31% numa-numastat.node0.local_node
374176 ± 24% +63.3% 611007 ± 27% numa-numastat.node0.numa_hit
1056347 ± 4% -39.9% 634843 ± 38% numa-numastat.node3.local_node
1060682 ± 4% -39.0% 646862 ± 35% numa-numastat.node3.numa_hit
14383 ± 51% +140.6% 34608 ± 31% proc-vmstat.nr_free_cma
179.00 +2.4% 183.33 proc-vmstat.nr_inactive_file
179.00 +2.4% 183.33 proc-vmstat.nr_zone_inactive_file
564483 ± 3% -38.0% 350064 ± 36% proc-vmstat.pgalloc_movable
1811959 +10.8% 2008488 ± 5% proc-vmstat.pgalloc_normal
7153 ± 42% -94.0% 431.33 ±119% latency_stats.max.pipe_write.__vfs_write.vfs_write.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe
6627 ±141% +380.5% 31843 ±110% latency_stats.max.call_rwsem_down_write_failed_killable.do_mprotect_pkey.__x64_sys_mprotect.do_syscall_64.entry_SYSCALL_64_after_hwframe
15244 ± 31% -99.9% 15.00 ±141% latency_stats.sum.call_rwsem_down_read_failed.__do_page_fault.do_page_fault.page_fault.__get_user_8.exit_robust_list.mm_release.do_exit.do_group_exit.get_signal.do_signal.exit_to_usermode_loop
4301 ±117% -83.7% 700.33 ± 6% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat
12153 ± 28% -83.1% 2056 ± 70% latency_stats.sum.pipe_write.__vfs_write.vfs_write.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe
6772 ±141% +1105.8% 81665 ±127% latency_stats.sum.call_rwsem_down_write_failed_killable.do_mprotect_pkey.__x64_sys_mprotect.do_syscall_64.entry_SYSCALL_64_after_hwframe
2.465e+13 -1.3% 2.434e+13 perf-stat.branch-instructions
2.691e+11 -2.1% 2.635e+11 perf-stat.branch-misses
3.402e+13 -1.4% 3.355e+13 perf-stat.dTLB-loads
1.694e+13 +1.4% 1.718e+13 perf-stat.dTLB-stores
1.75 ± 50% +4.7 6.45 ± 11% perf-stat.iTLB-load-miss-rate%
4.077e+08 ± 48% +232.3% 1.355e+09 ± 11% perf-stat.iTLB-load-misses
2.31e+10 ± 2% -14.9% 1.965e+10 ± 3% perf-stat.iTLB-loads
1.163e+14 -1.6% 1.144e+14 perf-stat.instructions
346171 ± 36% -75.3% 85575 ± 11% perf-stat.instructions-per-iTLB-miss
6.174e+08 ± 2% -9.5% 5.589e+08 perf-stat.node-store-misses
595.00 ± 10% +31.4% 782.00 ± 3% slabinfo.Acpi-State.active_objs
595.00 ± 10% +31.4% 782.00 ± 3% slabinfo.Acpi-State.num_objs
2831 ± 3% -14.0% 2434 ± 5% slabinfo.avtab_node.active_objs
2831 ± 3% -14.0% 2434 ± 5% slabinfo.avtab_node.num_objs
934.00 -10.9% 832.33 ± 5% slabinfo.inotify_inode_mark.active_objs
934.00 -10.9% 832.33 ± 5% slabinfo.inotify_inode_mark.num_objs
1232 ± 4% +13.4% 1397 ± 6% slabinfo.nsproxy.active_objs
1232 ± 4% +13.4% 1397 ± 6% slabinfo.nsproxy.num_objs
499.67 ± 12% +24.8% 623.67 ± 10% slabinfo.secpath_cache.active_objs
499.67 ± 12% +24.8% 623.67 ± 10% slabinfo.secpath_cache.num_objs
31393 ± 84% +220.1% 100477 ± 21% numa-meminfo.node0.Active
31393 ± 84% +220.1% 100477 ± 21% numa-meminfo.node0.Active(anon)
30013 ± 85% +232.1% 99661 ± 21% numa-meminfo.node0.AnonPages
21603 ± 34% -85.0% 3237 ±100% numa-meminfo.node0.Inactive
21528 ± 34% -85.0% 3237 ±100% numa-meminfo.node0.Inactive(anon)
10247 ± 35% -46.4% 5495 numa-meminfo.node0.Mapped
35388 ± 14% -41.6% 20670 ± 15% numa-meminfo.node0.SReclaimable
22911 ± 29% -82.3% 4057 ± 84% numa-meminfo.node0.Shmem
117387 ± 9% -22.5% 90986 ± 12% numa-meminfo.node0.Slab
68863 ± 67% +77.7% 122351 ± 13% numa-meminfo.node1.Active
68863 ± 67% +77.7% 122351 ± 13% numa-meminfo.node1.Active(anon)
228376 +22.3% 279406 ± 17% numa-meminfo.node1.FilePages
1481 ±116% +1062.1% 17218 ± 39% numa-meminfo.node1.Inactive
1481 ±116% +1062.0% 17216 ± 39% numa-meminfo.node1.Inactive(anon)
6593 ± 2% +11.7% 7367 ± 3% numa-meminfo.node1.KernelStack
596227 ± 8% +18.0% 703748 ± 4% numa-meminfo.node1.MemUsed
15298 ± 12% +88.5% 28843 ± 36% numa-meminfo.node1.SReclaimable
52718 ± 9% +21.0% 63810 ± 11% numa-meminfo.node1.SUnreclaim
1808 ± 97% +2723.8% 51054 ± 97% numa-meminfo.node1.Shmem
68017 ± 5% +36.2% 92654 ± 18% numa-meminfo.node1.Slab
125541 ± 29% -64.9% 44024 ± 98% numa-meminfo.node3.Active
125137 ± 29% -65.0% 43823 ± 98% numa-meminfo.node3.Active(anon)
93173 ± 25% -87.8% 11381 ± 20% numa-meminfo.node3.AnonPages
9150 ± 5% -9.3% 8301 ± 8% numa-meminfo.node3.KernelStack
7848 ± 84% +220.0% 25118 ± 21% numa-vmstat.node0.nr_active_anon
7503 ± 85% +232.1% 24914 ± 21% numa-vmstat.node0.nr_anon_pages
5381 ± 34% -85.0% 809.00 ±100% numa-vmstat.node0.nr_inactive_anon
2559 ± 35% -46.4% 1372 numa-vmstat.node0.nr_mapped
5727 ± 29% -82.3% 1014 ± 84% numa-vmstat.node0.nr_shmem
8846 ± 14% -41.6% 5167 ± 15% numa-vmstat.node0.nr_slab_reclaimable
7848 ± 84% +220.0% 25118 ± 21% numa-vmstat.node0.nr_zone_active_anon
5381 ± 34% -85.0% 809.00 ±100% numa-vmstat.node0.nr_zone_inactive_anon
4821 ± 2% +30.3% 6283 ± 15% numa-vmstat.node1
17215 ± 67% +77.7% 30591 ± 13% numa-vmstat.node1.nr_active_anon
57093 +22.3% 69850 ± 17% numa-vmstat.node1.nr_file_pages
370.00 ±116% +1061.8% 4298 ± 39% numa-vmstat.node1.nr_inactive_anon
6593 ± 2% +11.7% 7366 ± 3% numa-vmstat.node1.nr_kernel_stack
451.67 ± 97% +2725.6% 12762 ± 97% numa-vmstat.node1.nr_shmem
3824 ± 12% +88.6% 7211 ± 36% numa-vmstat.node1.nr_slab_reclaimable
13179 ± 9% +21.0% 15952 ± 11% numa-vmstat.node1.nr_slab_unreclaimable
17215 ± 67% +77.7% 30591 ± 13% numa-vmstat.node1.nr_zone_active_anon
370.00 ±116% +1061.8% 4298 ± 39% numa-vmstat.node1.nr_zone_inactive_anon
364789 ± 12% +62.8% 593926 ± 34% numa-vmstat.node1.numa_hit
239539 ± 19% +95.4% 468113 ± 43% numa-vmstat.node1.numa_local
71.00 ± 28% +42.3% 101.00 numa-vmstat.node2.nr_mlock
31285 ± 29% -65.0% 10960 ± 98% numa-vmstat.node3.nr_active_anon
23292 ± 25% -87.8% 2844 ± 19% numa-vmstat.node3.nr_anon_pages
14339 ± 52% +141.1% 34566 ± 32% numa-vmstat.node3.nr_free_cma
9151 ± 5% -9.3% 8299 ± 8% numa-vmstat.node3.nr_kernel_stack
31305 ± 29% -64.9% 10975 ± 98% numa-vmstat.node3.nr_zone_active_anon
930131 ± 3% -35.9% 596006 ± 34% numa-vmstat.node3.numa_hit
836455 ± 3% -40.9% 493947 ± 44% numa-vmstat.node3.numa_local
75182 ± 58% -83.8% 12160 ± 2% sched_debug.cfs_rq:/.load.max
6.65 ± 5% -10.6% 5.94 ± 6% sched_debug.cfs_rq:/.load_avg.avg
0.16 ± 7% +22.6% 0.20 ± 12% sched_debug.cfs_rq:/.nr_running.stddev
5.58 ± 24% +427.7% 29.42 ± 93% sched_debug.cfs_rq:/.nr_spread_over.max
0.54 ± 15% +306.8% 2.19 ± 86% sched_debug.cfs_rq:/.nr_spread_over.stddev
1.05 ± 25% -65.1% 0.37 ± 71% sched_debug.cfs_rq:/.removed.load_avg.avg
9.62 ± 11% -50.7% 4.74 ± 70% sched_debug.cfs_rq:/.removed.load_avg.stddev
48.70 ± 25% -65.1% 17.02 ± 71% sched_debug.cfs_rq:/.removed.runnable_sum.avg
444.31 ± 11% -50.7% 219.26 ± 70% sched_debug.cfs_rq:/.removed.runnable_sum.stddev
0.47 ± 13% -60.9% 0.19 ± 71% sched_debug.cfs_rq:/.removed.util_avg.avg
4.47 ± 4% -46.5% 2.39 ± 70% sched_debug.cfs_rq:/.removed.util_avg.stddev
1.64 ± 7% +22.1% 2.00 ± 13% sched_debug.cfs_rq:/.runnable_load_avg.stddev
74653 ± 59% -84.4% 11676 sched_debug.cfs_rq:/.runnable_weight.max
-119169 -491.3% 466350 ± 27% sched_debug.cfs_rq:/.spread0.avg
517161 ± 30% +145.8% 1271292 ± 23% sched_debug.cfs_rq:/.spread0.max
624.79 ± 5% -14.2% 535.76 ± 7% sched_debug.cfs_rq:/.util_est_enqueued.avg
247.91 ± 32% -99.8% 0.48 ± 8% sched_debug.cfs_rq:/.util_est_enqueued.min
179704 ± 3% +30.4% 234297 ± 16% sched_debug.cpu.avg_idle.stddev
1.56 ± 9% +24.4% 1.94 ± 14% sched_debug.cpu.cpu_load[0].stddev
1.50 ± 6% +27.7% 1.91 ± 14% sched_debug.cpu.cpu_load[1].stddev
1.45 ± 3% +30.8% 1.90 ± 14% sched_debug.cpu.cpu_load[2].stddev
1.43 ± 3% +36.1% 1.95 ± 11% sched_debug.cpu.cpu_load[3].stddev
1.55 ± 7% +43.5% 2.22 ± 7% sched_debug.cpu.cpu_load[4].stddev
10004 ± 3% -11.6% 8839 ± 3% sched_debug.cpu.curr->pid.avg
1146 ± 26% +52.2% 1745 ± 7% sched_debug.cpu.curr->pid.min
3162 ± 6% +25.4% 3966 ± 11% sched_debug.cpu.curr->pid.stddev
403738 ± 3% -11.7% 356696 ± 7% sched_debug.cpu.nr_switches.max
0.08 ± 21% +78.2% 0.14 ± 14% sched_debug.cpu.nr_uninterruptible.avg
404435 ± 3% -11.8% 356732 ± 7% sched_debug.cpu.sched_count.max
4.17 -0.3 3.87 perf-profile.calltrace.cycles-pp.kmem_cache_alloc.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
2.40 -0.2 2.17 perf-profile.calltrace.cycles-pp.vma_compute_subtree_gap.__vma_link_rb.vma_link.do_brk_flags.__x64_sys_brk
7.58 -0.2 7.36 perf-profile.calltrace.cycles-pp.perf_event_mmap.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
15.00 -0.2 14.81 perf-profile.calltrace.cycles-pp.syscall_return_via_sysret.brk
7.83 -0.2 7.66 perf-profile.calltrace.cycles-pp.unmap_vmas.unmap_region.do_munmap.__x64_sys_brk.do_syscall_64
28.66 -0.1 28.51 perf-profile.calltrace.cycles-pp.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
2.15 -0.1 2.03 perf-profile.calltrace.cycles-pp.vma_compute_subtree_gap.do_munmap.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
1.07 -0.1 0.99 perf-profile.calltrace.cycles-pp.memcpy_erms.strlcpy.perf_event_mmap.do_brk_flags.__x64_sys_brk
1.03 -0.1 0.95 perf-profile.calltrace.cycles-pp.kmem_cache_free.remove_vma.do_munmap.__x64_sys_brk.do_syscall_64
7.33 -0.1 7.25 perf-profile.calltrace.cycles-pp.unmap_page_range.unmap_vmas.unmap_region.do_munmap.__x64_sys_brk
0.76 -0.1 0.69 perf-profile.calltrace.cycles-pp.__vm_enough_memory.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
11.85 -0.1 11.77 perf-profile.calltrace.cycles-pp.unmap_region.do_munmap.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
1.64 -0.1 1.57 perf-profile.calltrace.cycles-pp.strlcpy.perf_event_mmap.do_brk_flags.__x64_sys_brk.do_syscall_64
1.06 -0.1 0.99 perf-profile.calltrace.cycles-pp.__indirect_thunk_start.brk
0.73 -0.1 0.67 perf-profile.calltrace.cycles-pp.sync_mm_rss.unmap_page_range.unmap_vmas.unmap_region.do_munmap
4.59 -0.1 4.52 perf-profile.calltrace.cycles-pp.security_vm_enough_memory_mm.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
2.82 -0.1 2.76 perf-profile.calltrace.cycles-pp.selinux_vm_enough_memory.security_vm_enough_memory_mm.do_brk_flags.__x64_sys_brk.do_syscall_64
2.89 -0.1 2.84 perf-profile.calltrace.cycles-pp.down_write_killable.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
3.37 -0.1 3.32 perf-profile.calltrace.cycles-pp.get_unmapped_area.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
1.99 -0.0 1.94 perf-profile.calltrace.cycles-pp.cred_has_capability.selinux_vm_enough_memory.security_vm_enough_memory_mm.do_brk_flags.__x64_sys_brk
2.32 -0.0 2.27 perf-profile.calltrace.cycles-pp.perf_iterate_sb.perf_event_mmap.do_brk_flags.__x64_sys_brk.do_syscall_64
1.88 -0.0 1.84 perf-profile.calltrace.cycles-pp.security_mmap_addr.get_unmapped_area.do_brk_flags.__x64_sys_brk.do_syscall_64
0.77 -0.0 0.73 perf-profile.calltrace.cycles-pp._raw_spin_lock.unmap_page_range.unmap_vmas.unmap_region.do_munmap
1.62 -0.0 1.59 perf-profile.calltrace.cycles-pp.memset_erms.kmem_cache_alloc.do_brk_flags.__x64_sys_brk.do_syscall_64
0.81 -0.0 0.79 perf-profile.calltrace.cycles-pp.___might_sleep.down_write_killable.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.66 -0.0 0.64 perf-profile.calltrace.cycles-pp.arch_get_unmapped_area_topdown.brk
0.72 +0.0 0.74 perf-profile.calltrace.cycles-pp.do_munmap.brk
0.90 +0.0 0.93 perf-profile.calltrace.cycles-pp.___might_sleep.unmap_page_range.unmap_vmas.unmap_region.do_munmap
4.40 +0.1 4.47 perf-profile.calltrace.cycles-pp.find_vma.do_munmap.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
1.96 +0.1 2.09 perf-profile.calltrace.cycles-pp.vmacache_find.find_vma.do_munmap.__x64_sys_brk.do_syscall_64
0.52 ± 2% +0.2 0.68 perf-profile.calltrace.cycles-pp.__vma_link_rb.brk
0.35 ± 70% +0.2 0.54 ± 2% perf-profile.calltrace.cycles-pp.find_vma.brk
2.20 +0.3 2.50 perf-profile.calltrace.cycles-pp.remove_vma.do_munmap.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
64.62 +0.3 64.94 perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.brk
60.53 +0.4 60.92 perf-profile.calltrace.cycles-pp.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
63.20 +0.4 63.60 perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
3.73 +0.5 4.26 perf-profile.calltrace.cycles-pp.vma_link.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +0.6 0.56 perf-profile.calltrace.cycles-pp.free_pgtables.unmap_region.do_munmap.__x64_sys_brk.do_syscall_64
24.54 +0.6 25.14 perf-profile.calltrace.cycles-pp.do_munmap.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +0.6 0.64 perf-profile.calltrace.cycles-pp.put_vma.remove_vma.do_munmap.__x64_sys_brk.do_syscall_64
0.71 +0.6 1.36 perf-profile.calltrace.cycles-pp.__vma_rb_erase.do_munmap.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +0.7 0.70 perf-profile.calltrace.cycles-pp._raw_write_lock.__vma_rb_erase.do_munmap.__x64_sys_brk.do_syscall_64
3.10 +0.7 3.82 perf-profile.calltrace.cycles-pp.__vma_link_rb.vma_link.do_brk_flags.__x64_sys_brk.do_syscall_64
0.00 +0.8 0.76 perf-profile.calltrace.cycles-pp._raw_write_lock.__vma_link_rb.vma_link.do_brk_flags.__x64_sys_brk
0.00 +0.8 0.85 perf-profile.calltrace.cycles-pp.__vma_merge.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
5.09 -0.5 4.62 perf-profile.children.cycles-pp.vma_compute_subtree_gap
4.54 -0.3 4.21 perf-profile.children.cycles-pp.kmem_cache_alloc
8.11 -0.2 7.89 perf-profile.children.cycles-pp.perf_event_mmap
8.05 -0.2 7.85 perf-profile.children.cycles-pp.unmap_vmas
15.01 -0.2 14.81 perf-profile.children.cycles-pp.syscall_return_via_sysret
29.20 -0.1 29.06 perf-profile.children.cycles-pp.do_brk_flags
1.11 -0.1 1.00 perf-profile.children.cycles-pp.kmem_cache_free
12.28 -0.1 12.17 perf-profile.children.cycles-pp.unmap_region
7.83 -0.1 7.74 perf-profile.children.cycles-pp.unmap_page_range
0.87 ± 3% -0.1 0.79 perf-profile.children.cycles-pp.__vm_enough_memory
1.29 -0.1 1.22 perf-profile.children.cycles-pp.__indirect_thunk_start
1.81 -0.1 1.74 perf-profile.children.cycles-pp.strlcpy
4.65 -0.1 4.58 perf-profile.children.cycles-pp.security_vm_enough_memory_mm
3.08 -0.1 3.02 perf-profile.children.cycles-pp.down_write_killable
2.88 -0.1 2.82 perf-profile.children.cycles-pp.selinux_vm_enough_memory
0.73 -0.1 0.67 perf-profile.children.cycles-pp.sync_mm_rss
3.65 -0.1 3.59 perf-profile.children.cycles-pp.get_unmapped_area
2.26 -0.1 2.20 perf-profile.children.cycles-pp.cred_has_capability
1.12 -0.1 1.07 perf-profile.children.cycles-pp.memcpy_erms
0.39 -0.0 0.35 perf-profile.children.cycles-pp.__rb_insert_augmented
2.52 -0.0 2.48 perf-profile.children.cycles-pp.perf_iterate_sb
2.13 -0.0 2.09 perf-profile.children.cycles-pp.security_mmap_addr
0.55 ± 2% -0.0 0.52 perf-profile.children.cycles-pp.unmap_single_vma
1.62 -0.0 1.59 perf-profile.children.cycles-pp.memset_erms
0.13 ± 3% -0.0 0.11 ± 4% perf-profile.children.cycles-pp.__vma_link_file
0.80 -0.0 0.77 perf-profile.children.cycles-pp._raw_spin_lock
0.43 -0.0 0.41 perf-profile.children.cycles-pp.strlen
0.07 ± 6% -0.0 0.06 ± 8% perf-profile.children.cycles-pp.should_failslab
0.43 -0.0 0.42 perf-profile.children.cycles-pp.may_expand_vm
0.15 +0.0 0.16 perf-profile.children.cycles-pp.__vma_link_list
0.45 +0.0 0.47 perf-profile.children.cycles-pp.rcu_all_qs
0.81 +0.1 0.89 perf-profile.children.cycles-pp.free_pgtables
6.35 +0.1 6.49 perf-profile.children.cycles-pp.find_vma
2.28 +0.2 2.45 perf-profile.children.cycles-pp.vmacache_find
64.66 +0.3 64.98 perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
2.42 +0.3 2.76 perf-profile.children.cycles-pp.remove_vma
61.77 +0.4 62.13 perf-profile.children.cycles-pp.__x64_sys_brk
63.40 +0.4 63.79 perf-profile.children.cycles-pp.do_syscall_64
1.27 +0.4 1.72 perf-profile.children.cycles-pp.__vma_rb_erase
4.02 +0.5 4.53 perf-profile.children.cycles-pp.vma_link
25.26 +0.6 25.89 perf-profile.children.cycles-pp.do_munmap
0.00 +0.7 0.70 perf-profile.children.cycles-pp.put_vma
3.80 +0.7 4.53 perf-profile.children.cycles-pp.__vma_link_rb
0.00 +1.2 1.24 perf-profile.children.cycles-pp.__vma_merge
0.00 +1.5 1.51 perf-profile.children.cycles-pp._raw_write_lock
5.07 -0.5 4.60 perf-profile.self.cycles-pp.vma_compute_subtree_gap
0.59 -0.2 0.38 perf-profile.self.cycles-pp.remove_vma
15.01 -0.2 14.81 perf-profile.self.cycles-pp.syscall_return_via_sysret
3.15 -0.2 2.96 perf-profile.self.cycles-pp.do_munmap
0.98 -0.1 0.87 perf-profile.self.cycles-pp.__vma_rb_erase
1.10 -0.1 0.99 perf-profile.self.cycles-pp.kmem_cache_free
0.68 -0.1 0.58 perf-profile.self.cycles-pp.__vm_enough_memory
0.42 -0.1 0.33 perf-profile.self.cycles-pp.unmap_vmas
3.62 -0.1 3.53 perf-profile.self.cycles-pp.perf_event_mmap
1.41 -0.1 1.34 perf-profile.self.cycles-pp.entry_SYSCALL_64_after_hwframe
1.29 -0.1 1.22 perf-profile.self.cycles-pp.__indirect_thunk_start
0.73 -0.1 0.66 perf-profile.self.cycles-pp.sync_mm_rss
2.96 -0.1 2.90 perf-profile.self.cycles-pp.__x64_sys_brk
3.24 -0.1 3.19 perf-profile.self.cycles-pp.brk
1.11 -0.0 1.07 perf-profile.self.cycles-pp.memcpy_erms
0.53 ± 3% -0.0 0.49 ± 2% perf-profile.self.cycles-pp.vma_link
0.73 -0.0 0.69 perf-profile.self.cycles-pp.unmap_region
1.66 -0.0 1.61 perf-profile.self.cycles-pp.down_write_killable
0.39 -0.0 0.35 perf-profile.self.cycles-pp.__rb_insert_augmented
1.74 -0.0 1.71 perf-profile.self.cycles-pp.kmem_cache_alloc
0.55 ± 2% -0.0 0.52 perf-profile.self.cycles-pp.unmap_single_vma
1.61 -0.0 1.59 perf-profile.self.cycles-pp.memset_erms
0.80 -0.0 0.77 perf-profile.self.cycles-pp._raw_spin_lock
0.13 -0.0 0.11 ± 4% perf-profile.self.cycles-pp.__vma_link_file
0.43 -0.0 0.41 perf-profile.self.cycles-pp.strlen
0.07 ± 6% -0.0 0.06 ± 8% perf-profile.self.cycles-pp.should_failslab
0.81 -0.0 0.79 perf-profile.self.cycles-pp.tlb_finish_mmu
0.15 +0.0 0.16 perf-profile.self.cycles-pp.__vma_link_list
0.45 +0.0 0.47 perf-profile.self.cycles-pp.rcu_all_qs
0.71 +0.0 0.72 perf-profile.self.cycles-pp.strlcpy
0.51 +0.1 0.56 perf-profile.self.cycles-pp.free_pgtables
1.41 +0.1 1.48 perf-profile.self.cycles-pp.__vma_link_rb
2.27 +0.2 2.44 perf-profile.self.cycles-pp.vmacache_find
0.00 +0.7 0.69 perf-profile.self.cycles-pp.put_vma
0.00 +1.2 1.23 perf-profile.self.cycles-pp.__vma_merge
0.00 +1.5 1.50 perf-profile.self.cycles-pp._raw_write_lock
=========================================================================================
tbox_group/testcase/rootfs/kconfig/compiler/nr_task/thp_enabled/test/cpufreq_governor:
lkp-skl-4sp1/will-it-scale/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/100%/always/brk1/performance
commit:
ba98a1cdad71d259a194461b3a61471b49b14df1
a7a8993bfe3ccb54ad468b9f1799649e4ad1ff12
ba98a1cdad71d259 a7a8993bfe3ccb54ad468b9f17
---------------- --------------------------
fail:runs %reproduction fail:runs
| | |
:3 33% 1:3 dmesg.WARNING:stack_going_in_the_wrong_direction?ip=schedule_tail/0x
:3 33% 1:3 kmsg.DHCP/BOOTP:Reply_not_for_us_on_eth#,op[#]xid[#]
%stddev %change %stddev
\ | \
998475 -2.2% 976893 will-it-scale.per_process_ops
625.87 -2.3% 611.42 will-it-scale.time.elapsed_time
625.87 -2.3% 611.42 will-it-scale.time.elapsed_time.max
8158 -1.9% 8000 will-it-scale.time.maximum_resident_set_size
18.42 ± 2% -11.9% 16.24 will-it-scale.time.user_time
34349225 ± 13% -14.5% 29371024 ± 17% will-it-scale.time.voluntary_context_switches
1.919e+08 -2.2% 1.877e+08 will-it-scale.workload
1639 ± 23% -18.4% 1337 ± 30% meminfo.Mlocked
17748 ± 82% +103.1% 36051 numa-numastat.node3.other_node
33410486 ± 14% -14.8% 28449258 ± 18% cpuidle.C1.usage
698749 ± 15% -18.0% 573307 ± 20% cpuidle.POLL.usage
3013702 ± 14% -15.1% 2559405 ± 17% softirqs.SCHED
54361293 ± 2% -19.0% 44044816 ± 2% softirqs.TIMER
33408303 ± 14% -14.9% 28447123 ± 18% turbostat.C1
0.34 ± 16% -52.0% 0.16 ± 15% turbostat.Pkg%pc2
1310 ± 74% +412.1% 6710 ± 58% irq_exception_noise.__do_page_fault.samples
3209 ± 74% +281.9% 12258 ± 53% irq_exception_noise.__do_page_fault.sum
600.67 ±132% -96.0% 24.00 ± 23% irq_exception_noise.irq_nr
99557 ± 7% -24.0% 75627 ± 7% irq_exception_noise.softirq_nr
41424 ± 9% -24.6% 31253 ± 6% irq_exception_noise.softirq_time
625.87 -2.3% 611.42 time.elapsed_time
625.87 -2.3% 611.42 time.elapsed_time.max
8158 -1.9% 8000 time.maximum_resident_set_size
18.42 ± 2% -11.9% 16.24 time.user_time
34349225 ± 13% -14.5% 29371024 ± 17% time.voluntary_context_switches
988.00 ± 8% +14.5% 1131 ± 2% slabinfo.Acpi-ParseExt.active_objs
988.00 ± 8% +14.5% 1131 ± 2% slabinfo.Acpi-ParseExt.num_objs
2384 ± 3% +21.1% 2888 ± 11% slabinfo.pool_workqueue.active_objs
2474 ± 2% +20.4% 2979 ± 11% slabinfo.pool_workqueue.num_objs
490.33 ± 10% -19.2% 396.00 ± 11% slabinfo.secpath_cache.active_objs
490.33 ± 10% -19.2% 396.00 ± 11% slabinfo.secpath_cache.num_objs
1123 ± 7% +14.2% 1282 ± 3% slabinfo.skbuff_fclone_cache.active_objs
1123 ± 7% +14.2% 1282 ± 3% slabinfo.skbuff_fclone_cache.num_objs
1.09 -0.0 1.07 perf-stat.branch-miss-rate%
2.691e+11 -2.4% 2.628e+11 perf-stat.branch-misses
71981351 ± 12% -13.8% 62013509 ± 16% perf-stat.context-switches
1.697e+13 +1.1% 1.715e+13 perf-stat.dTLB-stores
2.36 ± 29% +4.4 6.76 ± 11% perf-stat.iTLB-load-miss-rate%
5.21e+08 ± 28% +194.8% 1.536e+09 ± 10% perf-stat.iTLB-load-misses
239983 ± 24% -68.4% 75819 ± 11% perf-stat.instructions-per-iTLB-miss
3295653 ± 2% -6.3% 3088753 ± 3% perf-stat.node-stores
606239 +1.1% 612799 perf-stat.path-length
3755 ± 28% -37.5% 2346 ± 52% sched_debug.cfs_rq:/.exec_clock.stddev
10.45 ± 4% +24.3% 12.98 ± 18% sched_debug.cfs_rq:/.load_avg.stddev
6243 ± 46% -38.6% 3831 ± 78% sched_debug.cpu.load.stddev
867.80 ± 7% +25.3% 1087 ± 6% sched_debug.cpu.nr_load_updates.stddev
395898 ± 3% -11.1% 352071 ± 7% sched_debug.cpu.nr_switches.max
-13.33 -21.1% -10.52 sched_debug.cpu.nr_uninterruptible.min
395674 ± 3% -11.1% 351762 ± 7% sched_debug.cpu.sched_count.max
33152 ± 4% -12.8% 28899 sched_debug.cpu.ttwu_count.min
0.03 ± 20% +77.7% 0.05 ± 15% sched_debug.rt_rq:/.rt_time.max
89523 +1.8% 91099 proc-vmstat.nr_active_anon
409.67 ± 23% -18.4% 334.33 ± 30% proc-vmstat.nr_mlock
89530 +1.8% 91117 proc-vmstat.nr_zone_active_anon
2337130 -2.2% 2286775 proc-vmstat.numa_hit
2229090 -2.3% 2178626 proc-vmstat.numa_local
8460 ± 39% -75.5% 2076 ± 53% proc-vmstat.numa_pages_migrated
28643 ± 55% -83.5% 4727 ± 58% proc-vmstat.numa_pte_updates
2695806 -1.8% 2646639 proc-vmstat.pgfault
2330191 -2.1% 2281197 proc-vmstat.pgfree
8460 ± 39% -75.5% 2076 ± 53% proc-vmstat.pgmigrate_success
237651 ± 2% +31.3% 312092 ± 16% numa-meminfo.node0.FilePages
8059 ± 2% +10.7% 8925 ± 7% numa-meminfo.node0.KernelStack
6830 ± 25% +48.8% 10164 ± 35% numa-meminfo.node0.Mapped
1612 ± 21% +70.0% 2740 ± 19% numa-meminfo.node0.PageTables
10772 ± 65% +679.4% 83962 ± 59% numa-meminfo.node0.Shmem
163195 ± 15% -36.9% 103036 ± 32% numa-meminfo.node1.Active
163195 ± 15% -36.9% 103036 ± 32% numa-meminfo.node1.Active(anon)
1730 ± 4% +33.9% 2317 ± 14% numa-meminfo.node1.PageTables
55778 ± 19% +32.5% 73910 ± 8% numa-meminfo.node1.SUnreclaim
2671 ± 16% -45.0% 1469 ± 15% numa-meminfo.node2.PageTables
61537 ± 13% -17.7% 50647 ± 3% numa-meminfo.node2.SUnreclaim
48644 ± 94% +149.8% 121499 ± 11% numa-meminfo.node3.Active
48440 ± 94% +150.4% 121295 ± 11% numa-meminfo.node3.Active(anon)
11832 ± 79% -91.5% 1008 ± 67% numa-meminfo.node3.Inactive
11597 ± 82% -93.3% 772.00 ± 82% numa-meminfo.node3.Inactive(anon)
10389 ± 32% -43.0% 5921 ± 6% numa-meminfo.node3.Mapped
33704 ± 24% -44.2% 18792 ± 15% numa-meminfo.node3.SReclaimable
104733 ± 14% -25.3% 78275 ± 8% numa-meminfo.node3.Slab
139329 ±133% -99.8% 241.67 ± 79% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_do_create.nfs3_proc_create.nfs_create.path_openat.do_filp_open.do_sys_open.do_syscall_64
5403 ±139% -97.5% 137.67 ± 71% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
165968 ±101% -61.9% 63304 ± 58% latency_stats.avg.max
83.00 +12810.4% 10715 ±140% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_access.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat.filename_lookup
102.67 ± 6% +18845.5% 19450 ±140% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat
136.33 ± 16% +25043.5% 34279 ±141% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup.__lookup_slow.lookup_slow.walk_component.path_lookupat.filename_lookup
18497 ±141% -100.0% 0.00 latency_stats.max.call_rwsem_down_write_failed_killable.vm_mmap_pgoff.ksys_mmap_pgoff.do_syscall_64.entry_SYSCALL_64_after_hwframe
140500 ±131% -99.8% 247.00 ± 78% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_do_create.nfs3_proc_create.nfs_create.path_openat.do_filp_open.do_sys_open.do_syscall_64
5403 ±139% -97.5% 137.67 ± 71% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
87.33 ± 5% +23963.0% 21015 ±140% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_access.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat.filename_lookup
136.33 ± 16% +25043.5% 34279 ±141% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup.__lookup_slow.lookup_slow.walk_component.path_lookupat.filename_lookup
149.33 ± 14% +25485.9% 38208 ±141% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat
18761 ±141% -100.0% 0.00 latency_stats.sum.call_rwsem_down_write_failed_killable.vm_mmap_pgoff.ksys_mmap_pgoff.do_syscall_64.entry_SYSCALL_64_after_hwframe
23363 ±114% -100.0% 0.00 latency_stats.sum.call_rwsem_down_read_failed.__do_page_fault.do_page_fault.page_fault.__get_user_8.exit_robust_list.mm_release.do_exit.do_group_exit.get_signal.do_signal.exit_to_usermode_loop
144810 ±125% -99.8% 326.67 ± 70% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_do_create.nfs3_proc_create.nfs_create.path_openat.do_filp_open.do_sys_open.do_syscall_64
5403 ±139% -97.5% 137.67 ± 71% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup.path_openat.do_filp_open.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
59698 ± 98% -78.0% 13110 ±141% latency_stats.sum.call_rwsem_down_read_failed.do_exit.do_group_exit.get_signal.do_signal.exit_to_usermode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
166.33 +12768.5% 21404 ±140% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_access.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat.filename_lookup
825.00 ± 6% +18761.7% 155609 ±140% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat
136.33 ± 16% +25043.5% 34279 ±141% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup.__lookup_slow.lookup_slow.walk_component.path_lookupat.filename_lookup
59412 ± 2% +31.3% 78021 ± 16% numa-vmstat.node0.nr_file_pages
8059 ± 2% +10.7% 8923 ± 7% numa-vmstat.node0.nr_kernel_stack
1701 ± 25% +49.1% 2536 ± 35% numa-vmstat.node0.nr_mapped
402.33 ± 21% +70.0% 684.00 ± 19% numa-vmstat.node0.nr_page_table_pages
2692 ± 65% +679.5% 20988 ± 59% numa-vmstat.node0.nr_shmem
622587 ± 36% +37.7% 857545 ± 13% numa-vmstat.node0.numa_local
40797 ± 15% -36.9% 25757 ± 32% numa-vmstat.node1.nr_active_anon
432.00 ± 4% +33.9% 578.33 ± 14% numa-vmstat.node1.nr_page_table_pages
13944 ± 19% +32.5% 18477 ± 8% numa-vmstat.node1.nr_slab_unreclaimable
40797 ± 15% -36.9% 25757 ± 32% numa-vmstat.node1.nr_zone_active_anon
625073 ± 26% +29.4% 808657 ± 18% numa-vmstat.node1.numa_hit
503969 ± 34% +39.2% 701446 ± 23% numa-vmstat.node1.numa_local
137.33 ± 40% -49.0% 70.00 ± 29% numa-vmstat.node2.nr_mlock
667.67 ± 17% -45.1% 366.33 ± 15% numa-vmstat.node2.nr_page_table_pages
15384 ± 13% -17.7% 12662 ± 3% numa-vmstat.node2.nr_slab_unreclaimable
12114 ± 94% +150.3% 30326 ± 11% numa-vmstat.node3.nr_active_anon
2887 ± 83% -93.4% 190.00 ± 82% numa-vmstat.node3.nr_inactive_anon
2632 ± 30% -39.2% 1600 ± 5% numa-vmstat.node3.nr_mapped
101.00 -30.0% 70.67 ± 29% numa-vmstat.node3.nr_mlock
8425 ± 24% -44.2% 4697 ± 15% numa-vmstat.node3.nr_slab_reclaimable
12122 ± 94% +150.3% 30346 ± 11% numa-vmstat.node3.nr_zone_active_anon
2887 ± 83% -93.4% 190.00 ± 82% numa-vmstat.node3.nr_zone_inactive_anon
106945 ± 13% +17.4% 125554 numa-vmstat.node3.numa_other
4.17 -0.3 3.82 perf-profile.calltrace.cycles-pp.kmem_cache_alloc.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
15.02 -0.3 14.77 perf-profile.calltrace.cycles-pp.syscall_return_via_sysret.brk
2.42 -0.2 2.18 perf-profile.calltrace.cycles-pp.vma_compute_subtree_gap.__vma_link_rb.vma_link.do_brk_flags.__x64_sys_brk
7.60 -0.2 7.39 perf-profile.calltrace.cycles-pp.perf_event_mmap.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
7.79 -0.2 7.63 perf-profile.calltrace.cycles-pp.unmap_vmas.unmap_region.do_munmap.__x64_sys_brk.do_syscall_64
0.82 ± 9% -0.1 0.68 perf-profile.calltrace.cycles-pp.__vm_enough_memory.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
2.13 -0.1 2.00 perf-profile.calltrace.cycles-pp.vma_compute_subtree_gap.do_munmap.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
1.05 -0.1 0.95 perf-profile.calltrace.cycles-pp.kmem_cache_free.remove_vma.do_munmap.__x64_sys_brk.do_syscall_64
7.31 -0.1 7.21 perf-profile.calltrace.cycles-pp.unmap_page_range.unmap_vmas.unmap_region.do_munmap.__x64_sys_brk
0.74 -0.1 0.67 perf-profile.calltrace.cycles-pp.sync_mm_rss.unmap_page_range.unmap_vmas.unmap_region.do_munmap
1.06 -0.1 1.00 perf-profile.calltrace.cycles-pp.memcpy_erms.strlcpy.perf_event_mmap.do_brk_flags.__x64_sys_brk
3.38 -0.1 3.33 perf-profile.calltrace.cycles-pp.get_unmapped_area.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
1.05 -0.0 1.00 ± 2% perf-profile.calltrace.cycles-pp.__indirect_thunk_start.brk
2.34 -0.0 2.29 perf-profile.calltrace.cycles-pp.perf_iterate_sb.perf_event_mmap.do_brk_flags.__x64_sys_brk.do_syscall_64
1.64 -0.0 1.59 perf-profile.calltrace.cycles-pp.strlcpy.perf_event_mmap.do_brk_flags.__x64_sys_brk.do_syscall_64
1.89 -0.0 1.86 perf-profile.calltrace.cycles-pp.security_mmap_addr.get_unmapped_area.do_brk_flags.__x64_sys_brk.do_syscall_64
0.76 -0.0 0.73 perf-profile.calltrace.cycles-pp._raw_spin_lock.unmap_page_range.unmap_vmas.unmap_region.do_munmap
0.57 ± 2% -0.0 0.55 perf-profile.calltrace.cycles-pp.selinux_mmap_addr.security_mmap_addr.get_unmapped_area.do_brk_flags.__x64_sys_brk
0.54 ± 2% +0.0 0.56 perf-profile.calltrace.cycles-pp.do_brk_flags.brk
0.72 +0.0 0.76 ± 2% perf-profile.calltrace.cycles-pp.do_munmap.brk
4.38 +0.1 4.43 perf-profile.calltrace.cycles-pp.find_vma.do_munmap.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
1.96 +0.1 2.04 perf-profile.calltrace.cycles-pp.vmacache_find.find_vma.do_munmap.__x64_sys_brk.do_syscall_64
0.53 +0.2 0.68 perf-profile.calltrace.cycles-pp.__vma_link_rb.brk
2.21 +0.3 2.51 perf-profile.calltrace.cycles-pp.remove_vma.do_munmap.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
64.44 +0.5 64.90 perf-profile.calltrace.cycles-pp.entry_SYSCALL_64_after_hwframe.brk
63.04 +0.5 63.54 perf-profile.calltrace.cycles-pp.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
60.37 +0.5 60.88 perf-profile.calltrace.cycles-pp.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
3.75 +0.5 4.29 perf-profile.calltrace.cycles-pp.vma_link.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +0.6 0.57 perf-profile.calltrace.cycles-pp.free_pgtables.unmap_region.do_munmap.__x64_sys_brk.do_syscall_64
0.00 +0.6 0.64 perf-profile.calltrace.cycles-pp.put_vma.remove_vma.do_munmap.__x64_sys_brk.do_syscall_64
0.72 +0.7 1.37 perf-profile.calltrace.cycles-pp.__vma_rb_erase.do_munmap.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
24.42 +0.7 25.08 perf-profile.calltrace.cycles-pp.do_munmap.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe.brk
0.00 +0.7 0.71 perf-profile.calltrace.cycles-pp._raw_write_lock.__vma_rb_erase.do_munmap.__x64_sys_brk.do_syscall_64
3.12 +0.7 3.84 perf-profile.calltrace.cycles-pp.__vma_link_rb.vma_link.do_brk_flags.__x64_sys_brk.do_syscall_64
0.00 +0.8 0.77 perf-profile.calltrace.cycles-pp._raw_write_lock.__vma_link_rb.vma_link.do_brk_flags.__x64_sys_brk
0.00 +0.9 0.85 perf-profile.calltrace.cycles-pp.__vma_merge.do_brk_flags.__x64_sys_brk.do_syscall_64.entry_SYSCALL_64_after_hwframe
5.10 -0.5 4.60 perf-profile.children.cycles-pp.vma_compute_subtree_gap
4.53 -0.3 4.18 perf-profile.children.cycles-pp.kmem_cache_alloc
15.03 -0.3 14.77 perf-profile.children.cycles-pp.syscall_return_via_sysret
8.13 -0.2 7.92 perf-profile.children.cycles-pp.perf_event_mmap
8.01 -0.2 7.81 perf-profile.children.cycles-pp.unmap_vmas
0.97 ± 14% -0.2 0.78 perf-profile.children.cycles-pp.__vm_enough_memory
1.13 -0.1 1.00 perf-profile.children.cycles-pp.kmem_cache_free
7.82 -0.1 7.70 perf-profile.children.cycles-pp.unmap_page_range
12.23 -0.1 12.13 perf-profile.children.cycles-pp.unmap_region
0.74 -0.1 0.67 perf-profile.children.cycles-pp.sync_mm_rss
3.06 -0.1 3.00 perf-profile.children.cycles-pp.down_write_killable
0.40 ± 2% -0.1 0.34 perf-profile.children.cycles-pp.__rb_insert_augmented
1.29 -0.1 1.23 perf-profile.children.cycles-pp.__indirect_thunk_start
2.54 -0.1 2.49 perf-profile.children.cycles-pp.perf_iterate_sb
3.66 -0.0 3.61 perf-profile.children.cycles-pp.get_unmapped_area
1.80 -0.0 1.75 perf-profile.children.cycles-pp.strlcpy
0.53 ± 2% -0.0 0.49 ± 2% perf-profile.children.cycles-pp.cap_capable
1.57 -0.0 1.53 perf-profile.children.cycles-pp.arch_get_unmapped_area_topdown
1.11 -0.0 1.08 perf-profile.children.cycles-pp.memcpy_erms
0.13 -0.0 0.10 perf-profile.children.cycles-pp.__vma_link_file
0.55 -0.0 0.52 perf-profile.children.cycles-pp.unmap_single_vma
1.47 -0.0 1.44 perf-profile.children.cycles-pp.cap_vm_enough_memory
2.14 -0.0 2.12 perf-profile.children.cycles-pp.security_mmap_addr
0.32 -0.0 0.30 perf-profile.children.cycles-pp.userfaultfd_unmap_complete
1.25 -0.0 1.23 perf-profile.children.cycles-pp.up_write
0.50 -0.0 0.49 perf-profile.children.cycles-pp.userfaultfd_unmap_prep
0.27 -0.0 0.26 perf-profile.children.cycles-pp.tlb_flush_mmu_free
1.14 -0.0 1.12 perf-profile.children.cycles-pp.__might_sleep
0.07 -0.0 0.06 perf-profile.children.cycles-pp.should_failslab
0.72 +0.0 0.74 perf-profile.children.cycles-pp._cond_resched
0.45 +0.0 0.47 perf-profile.children.cycles-pp.rcu_all_qs
0.15 ± 3% +0.0 0.17 ± 4% perf-profile.children.cycles-pp.__vma_link_list
0.15 ± 5% +0.0 0.18 ± 5% perf-profile.children.cycles-pp.tick_sched_timer
0.05 ± 8% +0.1 0.12 ± 17% perf-profile.children.cycles-pp.perf_mux_hrtimer_handler
0.80 +0.1 0.89 perf-profile.children.cycles-pp.free_pgtables
0.22 ± 7% +0.1 0.31 ± 9% perf-profile.children.cycles-pp.__hrtimer_run_queues
0.00 +0.1 0.11 ± 15% perf-profile.children.cycles-pp.clockevents_program_event
6.34 +0.1 6.47 perf-profile.children.cycles-pp.find_vma
2.27 +0.1 2.40 perf-profile.children.cycles-pp.vmacache_find
0.40 ± 4% +0.2 0.58 ± 5% perf-profile.children.cycles-pp.apic_timer_interrupt
0.40 ± 4% +0.2 0.58 ± 5% perf-profile.children.cycles-pp.smp_apic_timer_interrupt
0.37 ± 4% +0.2 0.54 ± 5% perf-profile.children.cycles-pp.hrtimer_interrupt
0.00 +0.2 0.19 ± 12% perf-profile.children.cycles-pp.ktime_get
2.42 +0.3 2.77 perf-profile.children.cycles-pp.remove_vma
64.49 +0.5 64.94 perf-profile.children.cycles-pp.entry_SYSCALL_64_after_hwframe
1.27 +0.5 1.73 perf-profile.children.cycles-pp.__vma_rb_erase
61.62 +0.5 62.10 perf-profile.children.cycles-pp.__x64_sys_brk
63.24 +0.5 63.74 perf-profile.children.cycles-pp.do_syscall_64
4.03 +0.5 4.56 perf-profile.children.cycles-pp.vma_link
0.00 +0.7 0.69 perf-profile.children.cycles-pp.put_vma
25.13 +0.7 25.84 perf-profile.children.cycles-pp.do_munmap
3.83 +0.7 4.56 perf-profile.children.cycles-pp.__vma_link_rb
0.00 +1.2 1.25 perf-profile.children.cycles-pp.__vma_merge
0.00 +1.5 1.53 perf-profile.children.cycles-pp._raw_write_lock
5.08 -0.5 4.58 perf-profile.self.cycles-pp.vma_compute_subtree_gap
15.03 -0.3 14.77 perf-profile.self.cycles-pp.syscall_return_via_sysret
0.59 -0.2 0.39 perf-profile.self.cycles-pp.remove_vma
0.72 ± 7% -0.1 0.58 perf-profile.self.cycles-pp.__vm_enough_memory
1.12 -0.1 0.99 perf-profile.self.cycles-pp.kmem_cache_free
3.11 -0.1 2.99 perf-profile.self.cycles-pp.do_munmap
0.99 -0.1 0.88 perf-profile.self.cycles-pp.__vma_rb_erase
3.63 -0.1 3.52 perf-profile.self.cycles-pp.perf_event_mmap
3.26 -0.1 3.17 perf-profile.self.cycles-pp.brk
0.41 ± 2% -0.1 0.33 perf-profile.self.cycles-pp.unmap_vmas
0.74 -0.1 0.67 perf-profile.self.cycles-pp.sync_mm_rss
1.75 -0.1 1.68 perf-profile.self.cycles-pp.kmem_cache_alloc
0.40 ± 2% -0.1 0.34 perf-profile.self.cycles-pp.__rb_insert_augmented
1.29 ± 2% -0.1 1.23 perf-profile.self.cycles-pp.__indirect_thunk_start
0.73 -0.0 0.68 ± 2% perf-profile.self.cycles-pp.unmap_region
0.53 -0.0 0.49 perf-profile.self.cycles-pp.vma_link
1.40 -0.0 1.35 perf-profile.self.cycles-pp.entry_SYSCALL_64_after_hwframe
5.22 -0.0 5.18 perf-profile.self.cycles-pp.unmap_page_range
0.53 ± 2% -0.0 0.49 ± 2% perf-profile.self.cycles-pp.cap_capable
1.11 -0.0 1.07 perf-profile.self.cycles-pp.memcpy_erms
1.86 -0.0 1.82 perf-profile.self.cycles-pp.perf_iterate_sb
1.30 -0.0 1.27 perf-profile.self.cycles-pp.arch_get_unmapped_area_topdown
0.13 -0.0 0.10 perf-profile.self.cycles-pp.__vma_link_file
0.55 -0.0 0.52 perf-profile.self.cycles-pp.unmap_single_vma
0.74 -0.0 0.72 perf-profile.self.cycles-pp.selinux_mmap_addr
0.32 -0.0 0.30 perf-profile.self.cycles-pp.userfaultfd_unmap_complete
1.13 -0.0 1.12 perf-profile.self.cycles-pp.__might_sleep
1.24 -0.0 1.23 perf-profile.self.cycles-pp.up_write
0.50 -0.0 0.49 perf-profile.self.cycles-pp.userfaultfd_unmap_prep
0.27 -0.0 0.26 perf-profile.self.cycles-pp.tlb_flush_mmu_free
0.07 -0.0 0.06 perf-profile.self.cycles-pp.should_failslab
0.45 +0.0 0.47 perf-profile.self.cycles-pp.rcu_all_qs
0.71 +0.0 0.73 perf-profile.self.cycles-pp.strlcpy
0.15 ± 3% +0.0 0.17 ± 4% perf-profile.self.cycles-pp.__vma_link_list
0.51 +0.1 0.57 perf-profile.self.cycles-pp.free_pgtables
1.40 +0.1 1.49 perf-profile.self.cycles-pp.__vma_link_rb
2.27 +0.1 2.39 perf-profile.self.cycles-pp.vmacache_find
0.00 +0.2 0.18 ± 12% perf-profile.self.cycles-pp.ktime_get
0.00 +0.7 0.69 perf-profile.self.cycles-pp.put_vma
0.00 +1.2 1.24 perf-profile.self.cycles-pp.__vma_merge
0.00 +1.5 1.52 perf-profile.self.cycles-pp._raw_write_lock
=========================================================================================
tbox_group/testcase/rootfs/kconfig/compiler/nr_task/thp_enabled/test/cpufreq_governor:
lkp-skl-4sp1/will-it-scale/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/100%/always/page_fault2/performance
commit:
ba98a1cdad71d259a194461b3a61471b49b14df1
a7a8993bfe3ccb54ad468b9f1799649e4ad1ff12
ba98a1cdad71d259 a7a8993bfe3ccb54ad468b9f17
---------------- --------------------------
fail:runs %reproduction fail:runs
| | |
:3 33% 1:3 dmesg.WARNING:at#for_ip_native_iret/0x
1:3 -33% :3 dmesg.WARNING:stack_going_in_the_wrong_direction?ip=__schedule/0x
:3 33% 1:3 dmesg.WARNING:stack_going_in_the_wrong_direction?ip=__slab_free/0x
1:3 -33% :3 kmsg.DHCP/BOOTP:Reply_not_for_us_on_eth#,op[#]xid[#]
3:3 -100% :3 kmsg.pstore:crypto_comp_decompress_failed,ret=
3:3 -100% :3 kmsg.pstore:decompression_failed
2:3 4% 2:3 perf-profile.calltrace.cycles-pp.sync_regs.error_entry
5:3 7% 5:3 perf-profile.calltrace.cycles-pp.error_entry
5:3 7% 5:3 perf-profile.children.cycles-pp.error_entry
2:3 3% 2:3 perf-profile.self.cycles-pp.error_entry
%stddev %change %stddev
\ | \
8281 ± 2% -18.8% 6728 will-it-scale.per_thread_ops
92778 ± 2% +17.6% 109080 will-it-scale.time.involuntary_context_switches
21954366 ± 3% +4.1% 22857988 ± 2% will-it-scale.time.maximum_resident_set_size
4.81e+08 ± 2% -18.9% 3.899e+08 will-it-scale.time.minor_page_faults
5804 +12.2% 6512 will-it-scale.time.percent_of_cpu_this_job_got
34918 +12.2% 39193 will-it-scale.time.system_time
5638528 ± 2% -15.3% 4778392 will-it-scale.time.voluntary_context_switches
15846405 -2.0% 15531034 will-it-scale.workload
2818137 +1.5% 2861500 interrupts.CAL:Function_call_interrupts
3.33 ± 28% -60.0% 1.33 ± 93% irq_exception_noise.irq_time
2866 +23.9% 3552 ± 2% kthread_noise.total_time
5589674 ± 14% +31.4% 7344810 ± 6% meminfo.DirectMap2M
31169 -16.9% 25906 uptime.idle
25242 ± 4% -14.2% 21654 ± 6% vmstat.system.cs
7055 -11.6% 6237 boot-time.idle
21.12 +19.3% 25.19 ± 9% boot-time.kernel_boot
20.03 ± 2% -3.7 16.38 mpstat.cpu.idle%
0.00 ± 8% -0.0 0.00 ± 4% mpstat.cpu.iowait%
7284147 ± 2% -16.4% 6092495 softirqs.RCU
5350756 ± 2% -10.9% 4769417 ± 4% softirqs.SCHED
42933 ± 21% -28.2% 30807 ± 7% numa-meminfo.node2.SReclaimable
63219 ± 13% -16.6% 52717 ± 6% numa-meminfo.node2.SUnreclaim
106153 ± 16% -21.3% 83525 ± 5% numa-meminfo.node2.Slab
247154 ± 4% -7.6% 228415 numa-meminfo.node3.Unevictable
11904 ± 4% +17.1% 13945 ± 8% numa-vmstat.node0
2239 ± 22% -26.6% 1644 ± 2% numa-vmstat.node2.nr_mapped
10728 ± 21% -28.2% 7701 ± 7% numa-vmstat.node2.nr_slab_reclaimable
15803 ± 13% -16.6% 13179 ± 6% numa-vmstat.node2.nr_slab_unreclaimable
61788 ± 4% -7.6% 57103 numa-vmstat.node3.nr_unevictable
61788 ± 4% -7.6% 57103 numa-vmstat.node3.nr_zone_unevictable
92778 ± 2% +17.6% 109080 time.involuntary_context_switches
21954366 ± 3% +4.1% 22857988 ± 2% time.maximum_resident_set_size
4.81e+08 ± 2% -18.9% 3.899e+08 time.minor_page_faults
5804 +12.2% 6512 time.percent_of_cpu_this_job_got
34918 +12.2% 39193 time.system_time
5638528 ± 2% -15.3% 4778392 time.voluntary_context_switches
3942289 ± 2% -10.5% 3528902 ± 2% cpuidle.C1.time
242290 -14.2% 207992 cpuidle.C1.usage
1.64e+09 ± 2% -15.7% 1.381e+09 cpuidle.C1E.time
4621281 ± 2% -14.7% 3939757 cpuidle.C1E.usage
2.115e+10 ± 2% -18.5% 1.723e+10 cpuidle.C6.time
24771099 ± 2% -18.0% 20305766 cpuidle.C6.usage
1210810 ± 4% -17.6% 997270 ± 2% cpuidle.POLL.time
18742 ± 3% -17.0% 15559 ± 2% cpuidle.POLL.usage
4135 ±141% -100.0% 0.00 latency_stats.avg.x86_reserve_hardware.x86_pmu_event_init.perf_try_init_event.perf_event_alloc.__do_sys_perf_event_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
33249 ±129% -100.0% 0.00 latency_stats.max.call_rwsem_down_read_failed.m_start.seq_read.__vfs_read.vfs_read.ksys_read.do_syscall_64.entry_SYSCALL_64_after_hwframe
4135 ±141% -100.0% 0.00 latency_stats.max.x86_reserve_hardware.x86_pmu_event_init.perf_try_init_event.perf_event_alloc.__do_sys_perf_event_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
65839 ±116% -100.0% 0.00 latency_stats.sum.call_rwsem_down_read_failed.m_start.seq_read.__vfs_read.vfs_read.ksys_read.do_syscall_64.entry_SYSCALL_64_after_hwframe
4135 ±141% -100.0% 0.00 latency_stats.sum.x86_reserve_hardware.x86_pmu_event_init.perf_try_init_event.perf_event_alloc.__do_sys_perf_event_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
8387 ±122% -90.9% 767.00 ± 13% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat
263970 ± 10% -68.6% 82994 ± 3% latency_stats.sum.do_syslog.kmsg_read.proc_reg_read.__vfs_read.vfs_read.ksys_read.do_syscall_64.entry_SYSCALL_64_after_hwframe
6173 ± 77% +173.3% 16869 ± 98% latency_stats.sum.pipe_write.__vfs_write.vfs_write.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe
101.33 -4.6% 96.67 proc-vmstat.nr_anon_transparent_hugepages
39967 -1.8% 39241 proc-vmstat.nr_slab_reclaimable
67166 -2.4% 65522 proc-vmstat.nr_slab_unreclaimable
237743 -3.9% 228396 proc-vmstat.nr_unevictable
237743 -3.9% 228396 proc-vmstat.nr_zone_unevictable
4.807e+09 -2.0% 4.71e+09 proc-vmstat.numa_hit
4.807e+09 -2.0% 4.71e+09 proc-vmstat.numa_local
4.791e+09 -2.1% 4.69e+09 proc-vmstat.pgalloc_normal
4.783e+09 -2.0% 4.685e+09 proc-vmstat.pgfault
4.807e+09 -2.0% 4.709e+09 proc-vmstat.pgfree
1753 +4.6% 1833 turbostat.Avg_MHz
239445 -14.1% 205783 turbostat.C1
4617105 ± 2% -14.8% 3934693 turbostat.C1E
1.40 ± 2% -0.2 1.18 turbostat.C1E%
24764661 ± 2% -18.0% 20297643 turbostat.C6
18.09 ± 2% -3.4 14.74 turbostat.C6%
7.53 ± 2% -17.1% 6.24 turbostat.CPU%c1
11.88 ± 2% -19.1% 9.61 turbostat.CPU%c6
7.62 ± 3% -20.8% 6.04 turbostat.Pkg%pc2
388.30 +1.5% 393.93 turbostat.PkgWatt
390974 ± 8% +35.8% 530867 ± 11% sched_debug.cfs_rq:/.min_vruntime.stddev
-1754042 +75.7% -3081270 sched_debug.cfs_rq:/.spread0.min
388140 ± 8% +36.2% 528494 ± 11% sched_debug.cfs_rq:/.spread0.stddev
542.30 ± 3% -10.0% 488.21 ± 3% sched_debug.cfs_rq:/.util_avg.min
53.35 ± 16% +48.7% 79.35 ± 12% sched_debug.cfs_rq:/.util_est_enqueued.avg
30520 ± 6% -15.2% 25883 ± 12% sched_debug.cpu.nr_switches.avg
473770 ± 27% -37.4% 296623 ± 32% sched_debug.cpu.nr_switches.max
17077 ± 2% -15.1% 14493 sched_debug.cpu.nr_switches.min
30138 ± 6% -15.0% 25606 ± 12% sched_debug.cpu.sched_count.avg
472345 ± 27% -37.2% 296419 ± 32% sched_debug.cpu.sched_count.max
16858 ± 2% -15.2% 14299 sched_debug.cpu.sched_count.min
8358 ± 2% -15.5% 7063 sched_debug.cpu.sched_goidle.avg
12225 -13.6% 10565 sched_debug.cpu.sched_goidle.max
8032 ± 2% -16.0% 6749 sched_debug.cpu.sched_goidle.min
14839 ± 6% -15.3% 12568 ± 12% sched_debug.cpu.ttwu_count.avg
235115 ± 28% -38.3% 145175 ± 31% sched_debug.cpu.ttwu_count.max
7627 ± 3% -15.9% 6413 ± 2% sched_debug.cpu.ttwu_count.min
226299 ± 29% -39.5% 136827 ± 32% sched_debug.cpu.ttwu_local.max
0.85 -0.0 0.81 perf-stat.branch-miss-rate%
3.675e+10 -4.1% 3.523e+10 perf-stat.branch-misses
4.052e+11 -2.3% 3.958e+11 perf-stat.cache-misses
7.008e+11 -2.5% 6.832e+11 perf-stat.cache-references
15320995 ± 4% -14.3% 13136557 ± 6% perf-stat.context-switches
9.16 +4.8% 9.59 perf-stat.cpi
2.03e+14 +4.6% 2.124e+14 perf-stat.cpu-cycles
44508 -1.7% 43743 perf-stat.cpu-migrations
1.30 -0.1 1.24 perf-stat.dTLB-store-miss-rate%
4.064e+10 -3.5% 3.922e+10 perf-stat.dTLB-store-misses
3.086e+12 +1.1% 3.119e+12 perf-stat.dTLB-stores
3.611e+08 ± 6% -8.5% 3.304e+08 ± 5% perf-stat.iTLB-loads
0.11 -4.6% 0.10 perf-stat.ipc
4.783e+09 -2.0% 4.685e+09 perf-stat.minor-faults
1.53 ± 2% -0.3 1.22 ± 8% perf-stat.node-load-miss-rate%
1.389e+09 ± 3% -22.1% 1.083e+09 ± 9% perf-stat.node-load-misses
8.922e+10 -1.9% 8.75e+10 perf-stat.node-loads
5.06 +1.7 6.77 ± 3% perf-stat.node-store-miss-rate%
1.204e+09 +29.3% 1.556e+09 ± 3% perf-stat.node-store-misses
2.256e+10 -5.1% 2.142e+10 ± 2% perf-stat.node-stores
4.783e+09 -2.0% 4.685e+09 perf-stat.page-faults
1399242 +1.9% 1425404 perf-stat.path-length
1144 ± 8% -13.6% 988.00 ± 8% slabinfo.Acpi-ParseExt.active_objs
1144 ± 8% -13.6% 988.00 ± 8% slabinfo.Acpi-ParseExt.num_objs
1878 ± 17% +29.0% 2422 ± 16% slabinfo.dmaengine-unmap-16.active_objs
1878 ± 17% +29.0% 2422 ± 16% slabinfo.dmaengine-unmap-16.num_objs
1085 ± 5% -24.1% 823.33 ± 9% slabinfo.file_lock_cache.active_objs
1085 ± 5% -24.1% 823.33 ± 9% slabinfo.file_lock_cache.num_objs
61584 ± 4% -16.6% 51381 ± 5% slabinfo.filp.active_objs
967.00 ± 4% -16.5% 807.67 ± 5% slabinfo.filp.active_slabs
61908 ± 4% -16.5% 51713 ± 5% slabinfo.filp.num_objs
967.00 ± 4% -16.5% 807.67 ± 5% slabinfo.filp.num_slabs
1455 -15.4% 1232 ± 4% slabinfo.nsproxy.active_objs
1455 -15.4% 1232 ± 4% slabinfo.nsproxy.num_objs
84720 ± 6% -18.3% 69210 ± 4% slabinfo.pid.active_objs
1324 ± 6% -18.2% 1083 ± 4% slabinfo.pid.active_slabs
84820 ± 5% -18.2% 69386 ± 4% slabinfo.pid.num_objs
1324 ± 6% -18.2% 1083 ± 4% slabinfo.pid.num_slabs
2112 ± 18% -26.3% 1557 ± 5% slabinfo.scsi_sense_cache.active_objs
2112 ± 18% -26.3% 1557 ± 5% slabinfo.scsi_sense_cache.num_objs
5018 ± 5% -7.6% 4635 ± 4% slabinfo.sock_inode_cache.active_objs
5018 ± 5% -7.6% 4635 ± 4% slabinfo.sock_inode_cache.num_objs
1193 ± 4% +13.8% 1358 ± 4% slabinfo.task_group.active_objs
1193 ± 4% +13.8% 1358 ± 4% slabinfo.task_group.num_objs
62807 ± 3% -14.4% 53757 ± 3% slabinfo.vm_area_struct.active_objs
1571 ± 3% -12.1% 1381 ± 3% slabinfo.vm_area_struct.active_slabs
62877 ± 3% -14.3% 53880 ± 3% slabinfo.vm_area_struct.num_objs
1571 ± 3% -12.1% 1381 ± 3% slabinfo.vm_area_struct.num_slabs
47.45 -47.4 0.00 perf-profile.calltrace.cycles-pp.alloc_pages_vma.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
47.16 -47.2 0.00 perf-profile.calltrace.cycles-pp.__alloc_pages_nodemask.alloc_pages_vma.__handle_mm_fault.handle_mm_fault.__do_page_fault
46.99 -47.0 0.00 perf-profile.calltrace.cycles-pp.get_page_from_freelist.__alloc_pages_nodemask.alloc_pages_vma.__handle_mm_fault.handle_mm_fault
44.95 -44.9 0.00 perf-profile.calltrace.cycles-pp._raw_spin_lock.get_page_from_freelist.__alloc_pages_nodemask.alloc_pages_vma.__handle_mm_fault
7.42 ± 2% -7.4 0.00 perf-profile.calltrace.cycles-pp.copy_page.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
6.32 ± 10% -6.3 0.00 perf-profile.calltrace.cycles-pp.finish_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
6.28 ± 10% -6.3 0.00 perf-profile.calltrace.cycles-pp.alloc_set_pte.finish_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
0.00 +0.9 0.85 ± 11% perf-profile.calltrace.cycles-pp._raw_spin_lock.pte_map_lock.alloc_set_pte.finish_fault.handle_pte_fault
0.00 +0.9 0.92 ± 4% perf-profile.calltrace.cycles-pp.__list_del_entry_valid.get_page_from_freelist.__alloc_pages_nodemask.alloc_pages_vma.handle_pte_fault
0.00 +1.1 1.13 ± 7% perf-profile.calltrace.cycles-pp.find_lock_entry.shmem_getpage_gfp.shmem_fault.__do_fault.handle_pte_fault
0.00 +1.2 1.19 ± 7% perf-profile.calltrace.cycles-pp.shmem_getpage_gfp.shmem_fault.__do_fault.handle_pte_fault.__handle_mm_fault
0.00 +1.2 1.22 ± 5% perf-profile.calltrace.cycles-pp.pte_map_lock.alloc_set_pte.finish_fault.handle_pte_fault.__handle_mm_fault
0.00 +1.3 1.34 ± 7% perf-profile.calltrace.cycles-pp.shmem_fault.__do_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +1.4 1.36 ± 7% perf-profile.calltrace.cycles-pp.__do_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
0.00 +4.5 4.54 ± 19% perf-profile.calltrace.cycles-pp.pagevec_lru_move_fn.__lru_cache_add.alloc_set_pte.finish_fault.handle_pte_fault
0.00 +4.6 4.64 ± 19% perf-profile.calltrace.cycles-pp.__lru_cache_add.alloc_set_pte.finish_fault.handle_pte_fault.__handle_mm_fault
0.00 +6.6 6.64 ± 15% perf-profile.calltrace.cycles-pp.alloc_set_pte.finish_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +6.7 6.68 ± 15% perf-profile.calltrace.cycles-pp.finish_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
0.00 +7.5 7.54 ± 5% perf-profile.calltrace.cycles-pp.copy_page.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
0.00 +44.6 44.55 ± 3% perf-profile.calltrace.cycles-pp._raw_spin_lock.get_page_from_freelist.__alloc_pages_nodemask.alloc_pages_vma.handle_pte_fault
0.00 +46.6 46.63 ± 3% perf-profile.calltrace.cycles-pp.get_page_from_freelist.__alloc_pages_nodemask.alloc_pages_vma.handle_pte_fault.__handle_mm_fault
0.00 +46.8 46.81 ± 3% perf-profile.calltrace.cycles-pp.__alloc_pages_nodemask.alloc_pages_vma.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +47.1 47.10 ± 3% perf-profile.calltrace.cycles-pp.alloc_pages_vma.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
0.00 +63.1 63.15 perf-profile.calltrace.cycles-pp.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
0.39 ± 3% +0.0 0.42 ± 3% perf-profile.children.cycles-pp.radix_tree_lookup_slot
0.21 ± 3% +0.0 0.25 ± 5% perf-profile.children.cycles-pp.__mod_node_page_state
0.00 +0.1 0.06 ± 8% perf-profile.children.cycles-pp.get_vma_policy
0.00 +0.1 0.08 ± 5% perf-profile.children.cycles-pp.__lru_cache_add_active_or_unevictable
0.00 +0.2 0.18 ± 6% perf-profile.children.cycles-pp.__page_add_new_anon_rmap
0.00 +1.4 1.35 ± 5% perf-profile.children.cycles-pp.pte_map_lock
0.00 +63.2 63.21 perf-profile.children.cycles-pp.handle_pte_fault
1.40 ± 2% -0.4 1.03 ± 10% perf-profile.self.cycles-pp._raw_spin_lock
0.56 ± 3% -0.2 0.35 ± 6% perf-profile.self.cycles-pp.__handle_mm_fault
0.22 ± 3% -0.0 0.18 ± 7% perf-profile.self.cycles-pp.alloc_set_pte
0.09 +0.0 0.10 ± 4% perf-profile.self.cycles-pp.vmacache_find
0.39 ± 2% +0.0 0.41 ± 3% perf-profile.self.cycles-pp.__radix_tree_lookup
0.18 +0.0 0.20 ± 6% perf-profile.self.cycles-pp.mem_cgroup_charge_statistics
0.17 ± 2% +0.0 0.20 ± 7% perf-profile.self.cycles-pp.___might_sleep
0.33 ± 2% +0.0 0.36 ± 6% perf-profile.self.cycles-pp.handle_mm_fault
0.20 ± 2% +0.0 0.24 ± 3% perf-profile.self.cycles-pp.__mod_node_page_state
0.00 +0.1 0.05 perf-profile.self.cycles-pp.finish_fault
0.00 +0.1 0.05 perf-profile.self.cycles-pp.get_vma_policy
0.00 +0.1 0.08 ± 10% perf-profile.self.cycles-pp.__lru_cache_add_active_or_unevictable
0.00 +0.2 0.25 ± 5% perf-profile.self.cycles-pp.handle_pte_fault
0.00 +0.5 0.49 ± 8% perf-profile.self.cycles-pp.pte_map_lock
=========================================================================================
tbox_group/testcase/rootfs/kconfig/compiler/nr_task/thp_enabled/test/cpufreq_governor:
lkp-skl-4sp1/will-it-scale/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/100%/never/page_fault2/performance
commit:
ba98a1cdad71d259a194461b3a61471b49b14df1
a7a8993bfe3ccb54ad468b9f1799649e4ad1ff12
ba98a1cdad71d259 a7a8993bfe3ccb54ad468b9f17
---------------- --------------------------
fail:runs %reproduction fail:runs
| | |
1:3 -33% :3 kmsg.DHCP/BOOTP:Reply_not_for_us_on_eth#,op[#]xid[#]
:3 33% 1:3 dmesg.WARNING:stack_going_in_the_wrong_direction?ip=sched_slice/0x
1:3 -33% :3 dmesg.WARNING:stack_going_in_the_wrong_direction?ip=schedule_tail/0x
1:3 24% 2:3 perf-profile.calltrace.cycles-pp.sync_regs.error_entry
3:3 46% 5:3 perf-profile.calltrace.cycles-pp.error_entry
5:3 -9% 5:3 perf-profile.children.cycles-pp.error_entry
2:3 -4% 2:3 perf-profile.self.cycles-pp.error_entry
%stddev %change %stddev
\ | \
8147 -18.8% 6613 will-it-scale.per_thread_ops
93113 +17.0% 108982 will-it-scale.time.involuntary_context_switches
4.732e+08 -19.0% 3.833e+08 will-it-scale.time.minor_page_faults
5854 +12.0% 6555 will-it-scale.time.percent_of_cpu_this_job_got
35247 +12.1% 39495 will-it-scale.time.system_time
5546661 -15.5% 4689314 will-it-scale.time.voluntary_context_switches
15801637 -1.9% 15504487 will-it-scale.workload
1.43 ± 11% -59.7% 0.58 ± 28% irq_exception_noise.__do_page_fault.min
2811 ± 3% +23.7% 3477 ± 3% kthread_noise.total_time
292776 ± 5% +39.6% 408829 ± 21% meminfo.DirectMap4k
19.80 -3.7 16.12 mpstat.cpu.idle%
29940 -14.5% 25593 uptime.idle
24064 ± 3% -8.5% 22016 vmstat.system.cs
34.86 -1.9% 34.19 boot-time.boot
26.95 -2.8% 26.19 ± 2% boot-time.kernel_boot
7190569 ± 2% -15.2% 6100136 ± 3% softirqs.RCU
5513663 -13.8% 4751548 softirqs.SCHED
18064 ± 2% +24.3% 22461 ± 7% numa-vmstat.node0.nr_slab_unreclaimable
8507 ± 12% -16.8% 7075 ± 4% numa-vmstat.node2.nr_slab_reclaimable
18719 ± 9% -19.6% 15043 ± 4% numa-vmstat.node3.nr_slab_unreclaimable
72265 ± 2% +24.3% 89855 ± 7% numa-meminfo.node0.SUnreclaim
115980 ± 4% +22.6% 142233 ± 12% numa-meminfo.node0.Slab
34035 ± 12% -16.8% 28307 ± 4% numa-meminfo.node2.SReclaimable
74888 ± 9% -19.7% 60162 ± 4% numa-meminfo.node3.SUnreclaim
93113 +17.0% 108982 time.involuntary_context_switches
4.732e+08 -19.0% 3.833e+08 time.minor_page_faults
5854 +12.0% 6555 time.percent_of_cpu_this_job_got
35247 +12.1% 39495 time.system_time
5546661 -15.5% 4689314 time.voluntary_context_switches
4.792e+09 -1.9% 4.699e+09 proc-vmstat.numa_hit
4.791e+09 -1.9% 4.699e+09 proc-vmstat.numa_local
40447 ± 11% +13.2% 45804 ± 6% proc-vmstat.pgactivate
4.778e+09 -1.9% 4.688e+09 proc-vmstat.pgalloc_normal
4.767e+09 -1.9% 4.675e+09 proc-vmstat.pgfault
4.791e+09 -1.9% 4.699e+09 proc-vmstat.pgfree
230178 ± 2% -10.1% 206883 ± 3% cpuidle.C1.usage
1.617e+09 -15.0% 1.375e+09 cpuidle.C1E.time
4514401 -14.1% 3878206 cpuidle.C1E.usage
2.087e+10 -18.5% 1.701e+10 cpuidle.C6.time
24458365 -18.0% 20045336 cpuidle.C6.usage
1163758 -16.1% 976094 ± 4% cpuidle.POLL.time
17907 -14.6% 15294 ± 4% cpuidle.POLL.usage
1758 +4.5% 1838 turbostat.Avg_MHz
227522 ± 2% -10.2% 204426 ± 3% turbostat.C1
4512700 -14.2% 3873264 turbostat.C1E
1.39 -0.2 1.18 turbostat.C1E%
24452583 -18.0% 20039031 turbostat.C6
17.85 -3.3 14.55 turbostat.C6%
7.44 -16.8% 6.19 turbostat.CPU%c1
11.72 -19.3% 9.45 turbostat.CPU%c6
7.51 -21.3% 5.91 turbostat.Pkg%pc2
389.33 +1.6% 395.59 turbostat.PkgWatt
559.33 ± 13% -17.9% 459.33 ± 20% slabinfo.dmaengine-unmap-128.active_objs
559.33 ± 13% -17.9% 459.33 ± 20% slabinfo.dmaengine-unmap-128.num_objs
57734 ± 3% -5.7% 54421 ± 4% slabinfo.filp.active_objs
905.67 ± 3% -5.6% 854.67 ± 4% slabinfo.filp.active_slabs
57981 ± 3% -5.6% 54720 ± 4% slabinfo.filp.num_objs
905.67 ± 3% -5.6% 854.67 ± 4% slabinfo.filp.num_slabs
1378 -12.0% 1212 ± 7% slabinfo.nsproxy.active_objs
1378 -12.0% 1212 ± 7% slabinfo.nsproxy.num_objs
507.33 ± 7% -26.8% 371.33 ± 2% slabinfo.secpath_cache.active_objs
507.33 ± 7% -26.8% 371.33 ± 2% slabinfo.secpath_cache.num_objs
4788 ± 5% -8.3% 4391 ± 2% slabinfo.sock_inode_cache.active_objs
4788 ± 5% -8.3% 4391 ± 2% slabinfo.sock_inode_cache.num_objs
1431 ± 8% -12.3% 1255 ± 3% slabinfo.task_group.active_objs
1431 ± 8% -12.3% 1255 ± 3% slabinfo.task_group.num_objs
4.27 ± 17% +27.0% 5.42 ± 7% sched_debug.cfs_rq:/.runnable_load_avg.avg
13.44 ± 62% +73.6% 23.33 ± 24% sched_debug.cfs_rq:/.runnable_load_avg.stddev
772.55 ± 21% -32.7% 520.27 ± 4% sched_debug.cfs_rq:/.util_est_enqueued.max
4.39 ± 15% +29.0% 5.66 ± 11% sched_debug.cpu.cpu_load[0].avg
152.09 ± 72% +83.9% 279.67 ± 33% sched_debug.cpu.cpu_load[0].max
13.84 ± 58% +78.7% 24.72 ± 29% sched_debug.cpu.cpu_load[0].stddev
4.53 ± 14% +25.8% 5.70 ± 10% sched_debug.cpu.cpu_load[1].avg
156.58 ± 66% +76.6% 276.58 ± 33% sched_debug.cpu.cpu_load[1].max
14.02 ± 55% +72.4% 24.17 ± 28% sched_debug.cpu.cpu_load[1].stddev
4.87 ± 11% +17.3% 5.72 ± 9% sched_debug.cpu.cpu_load[2].avg
1.58 ± 2% +13.5% 1.79 ± 6% sched_debug.cpu.nr_running.max
16694 -14.6% 14259 sched_debug.cpu.nr_switches.min
31989 ± 13% +20.6% 38584 ± 6% sched_debug.cpu.nr_switches.stddev
16505 -14.8% 14068 sched_debug.cpu.sched_count.min
32084 ± 13% +19.9% 38482 ± 6% sched_debug.cpu.sched_count.stddev
8185 -15.0% 6957 sched_debug.cpu.sched_goidle.avg
12151 ± 2% -13.5% 10507 sched_debug.cpu.sched_goidle.max
7867 -15.7% 6631 sched_debug.cpu.sched_goidle.min
7595 -16.1% 6375 sched_debug.cpu.ttwu_count.min
15873 ± 13% +21.2% 19239 ± 6% sched_debug.cpu.ttwu_count.stddev
5244 ± 17% +17.0% 6134 ± 5% sched_debug.cpu.ttwu_local.avg
15646 ± 12% +21.5% 19008 ± 6% sched_debug.cpu.ttwu_local.stddev
0.85 -0.0 0.81 perf-stat.branch-miss-rate%
3.689e+10 -4.6% 3.518e+10 perf-stat.branch-misses
57.39 +0.6 58.00 perf-stat.cache-miss-rate%
4.014e+11 -1.2% 3.967e+11 perf-stat.cache-misses
6.994e+11 -2.2% 6.84e+11 perf-stat.cache-references
14605393 ± 3% -8.5% 13369913 perf-stat.context-switches
9.21 +4.5% 9.63 perf-stat.cpi
2.037e+14 +4.6% 2.13e+14 perf-stat.cpu-cycles
44424 -2.0% 43541 perf-stat.cpu-migrations
1.29 -0.1 1.24 perf-stat.dTLB-store-miss-rate%
4.018e+10 -2.8% 3.905e+10 perf-stat.dTLB-store-misses
3.071e+12 +1.4% 3.113e+12 perf-stat.dTLB-stores
93.04 +1.5 94.51 perf-stat.iTLB-load-miss-rate%
4.946e+09 +19.3% 5.903e+09 ± 5% perf-stat.iTLB-load-misses
3.702e+08 -7.5% 3.423e+08 ± 2% perf-stat.iTLB-loads
4470 -15.9% 3760 ± 5% perf-stat.instructions-per-iTLB-miss
0.11 -4.3% 0.10 perf-stat.ipc
4.767e+09 -1.9% 4.675e+09 perf-stat.minor-faults
1.46 ± 4% -0.1 1.33 ± 9% perf-stat.node-load-miss-rate%
4.91 +1.7 6.65 ± 2% perf-stat.node-store-miss-rate%
1.195e+09 +32.8% 1.587e+09 ± 2% perf-stat.node-store-misses
2.313e+10 -3.7% 2.227e+10 perf-stat.node-stores
4.767e+09 -1.9% 4.675e+09 perf-stat.page-faults
1399047 +2.0% 1427115 perf-stat.path-length
8908 ± 73% -100.0% 0.00 latency_stats.avg.call_rwsem_down_read_failed.m_start.seq_read.__vfs_read.vfs_read.ksys_read.do_syscall_64.entry_SYSCALL_64_after_hwframe
3604 ±141% -100.0% 0.00 latency_stats.avg.call_rwsem_down_write_failed.do_unlinkat.do_syscall_64.entry_SYSCALL_64_after_hwframe
61499 ±130% -92.6% 4534 ± 16% latency_stats.avg.expand_files.__alloc_fd.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
4391 ±138% -70.9% 1277 ±129% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup_revalidate.lookup_fast.walk_component.link_path_walk.path_lookupat.filename_lookup
67311 ±112% -48.5% 34681 ± 36% latency_stats.avg.max
3956 ±138% +320.4% 16635 ±140% latency_stats.avg.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat
164.67 ± 30% +7264.0% 12126 ±138% latency_stats.avg.flush_work.fsnotify_destroy_group.inotify_release.__fput.task_work_run.exit_to_usermode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +5.4e+105% 5367 ±141% latency_stats.avg.call_rwsem_down_write_failed.unlink_file_vma.free_pgtables.exit_mmap.mmput.flush_old_exec.load_elf_binary.search_binary_handler.do_execveat_common.__x64_sys_execve.do_syscall_64.entry_SYSCALL_64_after_hwframe
36937 ±119% -100.0% 0.00 latency_stats.max.call_rwsem_down_read_failed.m_start.seq_read.__vfs_read.vfs_read.ksys_read.do_syscall_64.entry_SYSCALL_64_after_hwframe
3604 ±141% -100.0% 0.00 latency_stats.max.call_rwsem_down_write_failed.do_unlinkat.do_syscall_64.entry_SYSCALL_64_after_hwframe
84146 ±107% -72.5% 23171 ± 31% latency_stats.max.expand_files.__alloc_fd.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
4391 ±138% -70.9% 1277 ±129% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup_revalidate.lookup_fast.walk_component.link_path_walk.path_lookupat.filename_lookup
5817 ± 83% -69.7% 1760 ± 67% latency_stats.max.pipe_write.__vfs_write.vfs_write.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe
6720 ±137% +1628.2% 116147 ±141% latency_stats.max.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat
164.67 ± 30% +7264.0% 12126 ±138% latency_stats.max.flush_work.fsnotify_destroy_group.inotify_release.__fput.task_work_run.exit_to_usermode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +1.2e+106% 12153 ±141% latency_stats.max.call_rwsem_down_write_failed.unlink_file_vma.free_pgtables.exit_mmap.mmput.flush_old_exec.load_elf_binary.search_binary_handler.do_execveat_common.__x64_sys_execve.do_syscall_64.entry_SYSCALL_64_after_hwframe
110122 ±120% -100.0% 0.00 latency_stats.sum.call_rwsem_down_read_failed.m_start.seq_read.__vfs_read.vfs_read.ksys_read.do_syscall_64.entry_SYSCALL_64_after_hwframe
3604 ±141% -100.0% 0.00 latency_stats.sum.call_rwsem_down_write_failed.do_unlinkat.do_syscall_64.entry_SYSCALL_64_after_hwframe
12078828 ±139% -99.3% 89363 ± 29% latency_stats.sum.expand_files.__alloc_fd.do_sys_open.do_syscall_64.entry_SYSCALL_64_after_hwframe
144453 ±120% -80.9% 27650 ± 19% latency_stats.sum.poll_schedule_timeout.do_sys_poll.__x64_sys_poll.do_syscall_64.entry_SYSCALL_64_after_hwframe
4391 ±138% -70.9% 1277 ±129% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_lookup.nfs_lookup_revalidate.lookup_fast.walk_component.link_path_walk.path_lookupat.filename_lookup
9438 ± 86% -68.4% 2980 ± 35% latency_stats.sum.pipe_write.__vfs_write.vfs_write.ksys_write.do_syscall_64.entry_SYSCALL_64_after_hwframe
31656 ±138% +320.4% 133084 ±140% latency_stats.sum.rpc_wait_bit_killable.__rpc_execute.rpc_run_task.rpc_call_sync.nfs3_rpc_wrapper.nfs3_proc_getattr.__nfs_revalidate_inode.nfs_do_access.nfs_permission.inode_permission.link_path_walk.path_lookupat
164.67 ± 30% +7264.0% 12126 ±138% latency_stats.sum.flush_work.fsnotify_destroy_group.inotify_release.__fput.task_work_run.exit_to_usermode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +8.8e+105% 8760 ±141% latency_stats.sum.msleep_interruptible.uart_wait_until_sent.tty_wait_until_sent.tty_port_close_start.tty_port_close.tty_release.__fput.task_work_run.exit_to_usermode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +1.3e+106% 12897 ±141% latency_stats.sum.tty_wait_until_sent.tty_port_close_start.tty_port_close.tty_release.__fput.task_work_run.exit_to_usermode_loop.do_syscall_64.entry_SYSCALL_64_after_hwframe
0.00 +3.2e+106% 32207 ±141% latency_stats.sum.call_rwsem_down_write_failed.unlink_file_vma.free_pgtables.exit_mmap.mmput.flush_old_exec.load_elf_binary.search_binary_handler.do_execveat_common.__x64_sys_execve.do_syscall_64.entry_SYSCALL_64_after_hwframe
44.43 ± 3% -44.4 0.00 perf-profile.calltrace.cycles-pp.alloc_pages_vma.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
44.13 ± 3% -44.1 0.00 perf-profile.calltrace.cycles-pp.__alloc_pages_nodemask.alloc_pages_vma.__handle_mm_fault.handle_mm_fault.__do_page_fault
43.95 ± 3% -43.9 0.00 perf-profile.calltrace.cycles-pp.get_page_from_freelist.__alloc_pages_nodemask.alloc_pages_vma.__handle_mm_fault.handle_mm_fault
41.85 ± 4% -41.9 0.00 perf-profile.calltrace.cycles-pp._raw_spin_lock.get_page_from_freelist.__alloc_pages_nodemask.alloc_pages_vma.__handle_mm_fault
7.74 ± 8% -7.7 0.00 perf-profile.calltrace.cycles-pp.copy_page.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
7.19 ± 4% -7.2 0.00 perf-profile.calltrace.cycles-pp.finish_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
7.15 ± 4% -7.2 0.00 perf-profile.calltrace.cycles-pp.alloc_set_pte.finish_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
5.09 ± 3% -5.1 0.00 perf-profile.calltrace.cycles-pp.__lru_cache_add.alloc_set_pte.finish_fault.__handle_mm_fault.handle_mm_fault
4.99 ± 3% -5.0 0.00 perf-profile.calltrace.cycles-pp.pagevec_lru_move_fn.__lru_cache_add.alloc_set_pte.finish_fault.__handle_mm_fault
0.93 ± 6% -0.1 0.81 ± 2% perf-profile.calltrace.cycles-pp.find_get_entry.find_lock_entry.shmem_getpage_gfp.shmem_fault.__do_fault
0.00 +0.8 0.84 perf-profile.calltrace.cycles-pp._raw_spin_lock.pte_map_lock.alloc_set_pte.finish_fault.handle_pte_fault
0.00 +0.9 0.92 ± 3% perf-profile.calltrace.cycles-pp.__list_del_entry_valid.get_page_from_freelist.__alloc_pages_nodemask.alloc_pages_vma.handle_pte_fault
0.00 +1.1 1.08 perf-profile.calltrace.cycles-pp.find_lock_entry.shmem_getpage_gfp.shmem_fault.__do_fault.handle_pte_fault
0.00 +1.1 1.14 perf-profile.calltrace.cycles-pp.shmem_getpage_gfp.shmem_fault.__do_fault.handle_pte_fault.__handle_mm_fault
0.00 +1.2 1.17 perf-profile.calltrace.cycles-pp.pte_map_lock.alloc_set_pte.finish_fault.handle_pte_fault.__handle_mm_fault
0.00 +1.3 1.29 perf-profile.calltrace.cycles-pp.shmem_fault.__do_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +1.3 1.31 perf-profile.calltrace.cycles-pp.__do_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
61.62 +1.7 63.33 perf-profile.calltrace.cycles-pp.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault.page_fault
41.73 ± 4% +3.0 44.75 perf-profile.calltrace.cycles-pp.native_queued_spin_lock_slowpath._raw_spin_lock.get_page_from_freelist.__alloc_pages_nodemask.alloc_pages_vma
0.00 +4.6 4.55 ± 15% perf-profile.calltrace.cycles-pp.pagevec_lru_move_fn.__lru_cache_add.alloc_set_pte.finish_fault.handle_pte_fault
0.00 +4.6 4.65 ± 14% perf-profile.calltrace.cycles-pp.__lru_cache_add.alloc_set_pte.finish_fault.handle_pte_fault.__handle_mm_fault
0.00 +6.6 6.57 ± 10% perf-profile.calltrace.cycles-pp.alloc_set_pte.finish_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +6.6 6.61 ± 10% perf-profile.calltrace.cycles-pp.finish_fault.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
0.00 +7.2 7.25 ± 2% perf-profile.calltrace.cycles-pp.copy_page.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
41.41 ± 70% +22.3 63.67 perf-profile.calltrace.cycles-pp.handle_mm_fault.__do_page_fault.do_page_fault.page_fault
42.19 ± 70% +22.6 64.75 perf-profile.calltrace.cycles-pp.__do_page_fault.do_page_fault.page_fault
42.20 ± 70% +22.6 64.76 perf-profile.calltrace.cycles-pp.do_page_fault.page_fault
42.27 ± 70% +22.6 64.86 perf-profile.calltrace.cycles-pp.page_fault
0.00 +44.9 44.88 perf-profile.calltrace.cycles-pp._raw_spin_lock.get_page_from_freelist.__alloc_pages_nodemask.alloc_pages_vma.handle_pte_fault
0.00 +46.9 46.92 perf-profile.calltrace.cycles-pp.get_page_from_freelist.__alloc_pages_nodemask.alloc_pages_vma.handle_pte_fault.__handle_mm_fault
0.00 +47.1 47.10 perf-profile.calltrace.cycles-pp.__alloc_pages_nodemask.alloc_pages_vma.handle_pte_fault.__handle_mm_fault.handle_mm_fault
0.00 +47.4 47.37 perf-profile.calltrace.cycles-pp.alloc_pages_vma.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault
0.00 +63.0 63.00 perf-profile.calltrace.cycles-pp.handle_pte_fault.__handle_mm_fault.handle_mm_fault.__do_page_fault.do_page_fault
0.97 ± 6% -0.1 0.84 ± 2% perf-profile.children.cycles-pp.find_get_entry
1.23 ± 6% -0.1 1.11 perf-profile.children.cycles-pp.find_lock_entry
0.09 ± 10% -0.0 0.07 ± 6% perf-profile.children.cycles-pp.unlock_page
0.19 ± 4% +0.0 0.21 ± 2% perf-profile.children.cycles-pp.mem_cgroup_charge_statistics
0.21 ± 2% +0.0 0.25 perf-profile.children.cycles-pp.__mod_node_page_state
0.00 +0.1 0.05 ± 8% perf-profile.children.cycles-pp.get_vma_policy
0.00 +0.1 0.08 perf-profile.children.cycles-pp.__lru_cache_add_active_or_unevictable
0.00 +0.2 0.18 ± 2% perf-profile.children.cycles-pp.__page_add_new_anon_rmap
0.00 +1.3 1.30 perf-profile.children.cycles-pp.pte_map_lock
63.40 +1.6 64.97 perf-profile.children.cycles-pp.__do_page_fault
63.19 +1.6 64.83 perf-profile.children.cycles-pp.do_page_fault
61.69 +1.7 63.36 perf-profile.children.cycles-pp.__handle_mm_fault
63.19 +1.7 64.86 perf-profile.children.cycles-pp.page_fault
61.99 +1.7 63.70 perf-profile.children.cycles-pp.handle_mm_fault
72.27 +2.2 74.52 perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath
67.51 +2.4 69.87 perf-profile.children.cycles-pp._raw_spin_lock
44.49 ± 3% +3.0 47.45 perf-profile.children.cycles-pp.alloc_pages_vma
44.28 ± 3% +3.0 47.26 perf-profile.children.cycles-pp.__alloc_pages_nodemask
44.13 ± 3% +3.0 47.12 perf-profile.children.cycles-pp.get_page_from_freelist
0.00 +63.1 63.06 perf-profile.children.cycles-pp.handle_pte_fault
1.46 ± 7% -0.5 1.01 perf-profile.self.cycles-pp._raw_spin_lock
0.58 ± 6% -0.2 0.34 perf-profile.self.cycles-pp.__handle_mm_fault
0.55 ± 6% -0.1 0.44 ± 2% perf-profile.self.cycles-pp.find_get_entry
0.22 ± 5% -0.1 0.16 ± 2% perf-profile.self.cycles-pp.alloc_set_pte
0.10 ± 8% -0.0 0.08 perf-profile.self.cycles-pp.down_read_trylock
0.09 ± 5% -0.0 0.07 perf-profile.self.cycles-pp.unlock_page
0.06 -0.0 0.05 perf-profile.self.cycles-pp.pmd_devmap_trans_unstable
0.20 ± 2% +0.0 0.24 ± 3% perf-profile.self.cycles-pp.__mod_node_page_state
0.00 +0.1 0.05 perf-profile.self.cycles-pp.finish_fault
0.00 +0.1 0.05 perf-profile.self.cycles-pp.get_vma_policy
0.00 +0.1 0.08 ± 6% perf-profile.self.cycles-pp.__lru_cache_add_active_or_unevictable
0.00 +0.2 0.25 perf-profile.self.cycles-pp.handle_pte_fault
0.00 +0.5 0.46 ± 7% perf-profile.self.cycles-pp.pte_map_lock
72.26 +2.3 74.52 perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath
[-- Attachment #3: perf-profile.zip --]
[-- Type: application/zip, Size: 19025 bytes --]
^ permalink raw reply
* [PATCH kernel 2/2] KVM: PPC: Check if IOMMU page is contained in the pinned physical page
From: Alexey Kardashevskiy @ 2018-06-19 8:44 UTC (permalink / raw)
To: linuxppc-dev
Cc: Alexey Kardashevskiy, David Gibson, kvm-ppc, kvm, Alex Williamson,
Paul Mackerras
In-Reply-To: <20180619084414.808-1-aik@ozlabs.ru>
We already have a check in drivers/vfio/vfio_iommu_spapr_tce.c that
an IOMMU page is contained in the physical page so the PCI hardware won't
get access to unassigned host memory.
However we do not have this check in KVM fastpath (H_PUT_TCE accelerated
code) so the user space can pin memory backed with 64k pages and create
a hardware TCE table with a bigger page size. We were lucky so far and
did not hit this yet as the very first time the mapping happens
we do not have tbl::it_userspace allocated yet and fall back to
the userspace which in turn calls VFIO IOMMU driver and that fails
because of the check in vfio_iommu_spapr_tce.c which is really
sustainable solution.
This stores the smallest preregistered page size in the preregistered
region descriptor and changes the mm_iommu_xxx API to check this against
the IOMMU page size.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
The bug is: run QEMU _without_ hugepages (no -mempath) and tell it to
advertise 16MB pages to the guest; a typical pseries guest will use 16MB
for IOMMU pages without checking the mmu pagesize and this will fail
at https://git.qemu.org/?p=qemu.git;a=blob;f=hw/vfio/common.c;h=fb396cf00ac40eb35967a04c9cc798ca896eed57;hb=refs/heads/master#l256
With the change, mapping will fail in KVM and the guest will print:
mlx5_core 0000:00:00.0: ibm,create-pe-dma-window(2027) 0 8000000 20000000 18 1f returned 0 (liobn = 0x80000001 starting addr = 8000000 0)
mlx5_core 0000:00:00.0: created tce table LIOBN 0x80000001 for /pci@800000020000000/ethernet@0
mlx5_core 0000:00:00.0: failed to map direct window for /pci@800000020000000/ethernet@0: -1
---
arch/powerpc/include/asm/mmu_context.h | 4 ++--
arch/powerpc/kvm/book3s_64_vio.c | 2 +-
arch/powerpc/kvm/book3s_64_vio_hv.c | 6 ++++--
arch/powerpc/mm/mmu_context_iommu.c | 16 ++++++++++++++--
drivers/vfio/vfio_iommu_spapr_tce.c | 2 +-
5 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/arch/powerpc/include/asm/mmu_context.h b/arch/powerpc/include/asm/mmu_context.h
index 896efa5..79d570c 100644
--- a/arch/powerpc/include/asm/mmu_context.h
+++ b/arch/powerpc/include/asm/mmu_context.h
@@ -35,9 +35,9 @@ extern struct mm_iommu_table_group_mem_t *mm_iommu_lookup_rm(
extern struct mm_iommu_table_group_mem_t *mm_iommu_find(struct mm_struct *mm,
unsigned long ua, unsigned long entries);
extern long mm_iommu_ua_to_hpa(struct mm_iommu_table_group_mem_t *mem,
- unsigned long ua, unsigned long *hpa);
+ unsigned long ua, unsigned int pageshift, unsigned long *hpa);
extern long mm_iommu_ua_to_hpa_rm(struct mm_iommu_table_group_mem_t *mem,
- unsigned long ua, unsigned long *hpa);
+ unsigned long ua, unsigned int pageshift, unsigned long *hpa);
extern long mm_iommu_mapped_inc(struct mm_iommu_table_group_mem_t *mem);
extern void mm_iommu_mapped_dec(struct mm_iommu_table_group_mem_t *mem);
#endif
diff --git a/arch/powerpc/kvm/book3s_64_vio.c b/arch/powerpc/kvm/book3s_64_vio.c
index d066e37..8c456fa 100644
--- a/arch/powerpc/kvm/book3s_64_vio.c
+++ b/arch/powerpc/kvm/book3s_64_vio.c
@@ -449,7 +449,7 @@ long kvmppc_tce_iommu_do_map(struct kvm *kvm, struct iommu_table *tbl,
/* This only handles v2 IOMMU type, v1 is handled via ioctl() */
return H_TOO_HARD;
- if (WARN_ON_ONCE(mm_iommu_ua_to_hpa(mem, ua, &hpa)))
+ if (WARN_ON_ONCE(mm_iommu_ua_to_hpa(mem, ua, tbl->it_page_shift, &hpa)))
return H_HARDWARE;
if (mm_iommu_mapped_inc(mem))
diff --git a/arch/powerpc/kvm/book3s_64_vio_hv.c b/arch/powerpc/kvm/book3s_64_vio_hv.c
index 925fc31..5b298f5 100644
--- a/arch/powerpc/kvm/book3s_64_vio_hv.c
+++ b/arch/powerpc/kvm/book3s_64_vio_hv.c
@@ -279,7 +279,8 @@ static long kvmppc_rm_tce_iommu_do_map(struct kvm *kvm, struct iommu_table *tbl,
if (!mem)
return H_TOO_HARD;
- if (WARN_ON_ONCE_RM(mm_iommu_ua_to_hpa_rm(mem, ua, &hpa)))
+ if (WARN_ON_ONCE_RM(mm_iommu_ua_to_hpa_rm(mem, ua, tbl->it_page_shift,
+ &hpa)))
return H_HARDWARE;
pua = (void *) vmalloc_to_phys(pua);
@@ -469,7 +470,8 @@ long kvmppc_rm_h_put_tce_indirect(struct kvm_vcpu *vcpu,
mem = mm_iommu_lookup_rm(vcpu->kvm->mm, ua, IOMMU_PAGE_SIZE_4K);
if (mem)
- prereg = mm_iommu_ua_to_hpa_rm(mem, ua, &tces) == 0;
+ prereg = mm_iommu_ua_to_hpa_rm(mem, ua,
+ IOMMU_PAGE_SHIFT_4K, &tces) == 0;
}
if (!prereg) {
diff --git a/arch/powerpc/mm/mmu_context_iommu.c b/arch/powerpc/mm/mmu_context_iommu.c
index abb4364..18cdf7f 100644
--- a/arch/powerpc/mm/mmu_context_iommu.c
+++ b/arch/powerpc/mm/mmu_context_iommu.c
@@ -27,6 +27,7 @@ struct mm_iommu_table_group_mem_t {
struct rcu_head rcu;
unsigned long used;
atomic64_t mapped;
+ unsigned int pageshift;
u64 ua; /* userspace address */
u64 entries; /* number of entries in hpas[] */
u64 *hpas; /* vmalloc'ed */
@@ -166,6 +167,8 @@ long mm_iommu_get(struct mm_struct *mm, unsigned long ua, unsigned long entries,
goto unlock_exit;
}
+ mem->pageshift = 30; /* start from 1G pages - the biggest we have */
+
for (i = 0; i < entries; ++i) {
if (1 != get_user_pages_fast(ua + (i << PAGE_SHIFT),
1/* pages */, 1/* iswrite */, &page)) {
@@ -199,6 +202,9 @@ long mm_iommu_get(struct mm_struct *mm, unsigned long ua, unsigned long entries,
}
}
populate:
+ mem->pageshift = min_t(unsigned int, mem->pageshift,
+ PAGE_SHIFT +
+ compound_order(compound_head(page)));
mem->hpas[i] = page_to_pfn(page) << PAGE_SHIFT;
}
@@ -349,7 +355,7 @@ struct mm_iommu_table_group_mem_t *mm_iommu_find(struct mm_struct *mm,
EXPORT_SYMBOL_GPL(mm_iommu_find);
long mm_iommu_ua_to_hpa(struct mm_iommu_table_group_mem_t *mem,
- unsigned long ua, unsigned long *hpa)
+ unsigned long ua, unsigned int pageshift, unsigned long *hpa)
{
const long entry = (ua - mem->ua) >> PAGE_SHIFT;
u64 *va = &mem->hpas[entry];
@@ -357,6 +363,9 @@ long mm_iommu_ua_to_hpa(struct mm_iommu_table_group_mem_t *mem,
if (entry >= mem->entries)
return -EFAULT;
+ if (pageshift > mem->pageshift)
+ return -EFAULT;
+
*hpa = *va | (ua & ~PAGE_MASK);
return 0;
@@ -364,7 +373,7 @@ long mm_iommu_ua_to_hpa(struct mm_iommu_table_group_mem_t *mem,
EXPORT_SYMBOL_GPL(mm_iommu_ua_to_hpa);
long mm_iommu_ua_to_hpa_rm(struct mm_iommu_table_group_mem_t *mem,
- unsigned long ua, unsigned long *hpa)
+ unsigned long ua, unsigned int pageshift, unsigned long *hpa)
{
const long entry = (ua - mem->ua) >> PAGE_SHIFT;
void *va = &mem->hpas[entry];
@@ -373,6 +382,9 @@ long mm_iommu_ua_to_hpa_rm(struct mm_iommu_table_group_mem_t *mem,
if (entry >= mem->entries)
return -EFAULT;
+ if (pageshift > mem->pageshift)
+ return -EFAULT;
+
pa = (void *) vmalloc_to_phys(va);
if (!pa)
return -EFAULT;
diff --git a/drivers/vfio/vfio_iommu_spapr_tce.c b/drivers/vfio/vfio_iommu_spapr_tce.c
index 2da5f05..7cd63b0 100644
--- a/drivers/vfio/vfio_iommu_spapr_tce.c
+++ b/drivers/vfio/vfio_iommu_spapr_tce.c
@@ -467,7 +467,7 @@ static int tce_iommu_prereg_ua_to_hpa(struct tce_container *container,
if (!mem)
return -EINVAL;
- ret = mm_iommu_ua_to_hpa(mem, tce, phpa);
+ ret = mm_iommu_ua_to_hpa(mem, tce, shift, phpa);
if (ret)
return -EINVAL;
--
2.11.0
^ permalink raw reply related
* [PATCH kernel 0/2] KVM: PPC: Check if IOMMU page is contained in the pinned physical page
From: Alexey Kardashevskiy @ 2018-06-19 8:44 UTC (permalink / raw)
To: linuxppc-dev
Cc: Alexey Kardashevskiy, David Gibson, kvm-ppc, kvm, Alex Williamson,
Paul Mackerras
This is to improve page boundaries checking and should probably
be cc:stable. I came accross this while debugging nvlink2 passthrough
but the lack of checking might be exploited by the existing userspace.
Please comment. Thanks.
Alexey Kardashevskiy (2):
vfio/spapr: Use IOMMU pageshift rather than pagesize
KVM: PPC: Check if IOMMU page is contained in the pinned physical page
arch/powerpc/include/asm/mmu_context.h | 4 ++--
arch/powerpc/kvm/book3s_64_vio.c | 2 +-
arch/powerpc/kvm/book3s_64_vio_hv.c | 6 ++++--
arch/powerpc/mm/mmu_context_iommu.c | 16 ++++++++++++++--
drivers/vfio/vfio_iommu_spapr_tce.c | 10 +++++-----
5 files changed, 26 insertions(+), 12 deletions(-)
--
2.11.0
^ permalink raw reply
* [PATCH kernel 1/2] vfio/spapr: Use IOMMU pageshift rather than pagesize
From: Alexey Kardashevskiy @ 2018-06-19 8:44 UTC (permalink / raw)
To: linuxppc-dev
Cc: Alexey Kardashevskiy, David Gibson, kvm-ppc, kvm, Alex Williamson,
Paul Mackerras
In-Reply-To: <20180619084414.808-1-aik@ozlabs.ru>
The size is always equal to 1 page so let's use this. Later on this will
be used for other checks which use page shifts to check the granularity
of access.
This should cause no behavioral change.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
drivers/vfio/vfio_iommu_spapr_tce.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/vfio/vfio_iommu_spapr_tce.c b/drivers/vfio/vfio_iommu_spapr_tce.c
index 759a5bd..2da5f05 100644
--- a/drivers/vfio/vfio_iommu_spapr_tce.c
+++ b/drivers/vfio/vfio_iommu_spapr_tce.c
@@ -457,13 +457,13 @@ static void tce_iommu_unuse_page(struct tce_container *container,
}
static int tce_iommu_prereg_ua_to_hpa(struct tce_container *container,
- unsigned long tce, unsigned long size,
+ unsigned long tce, unsigned long shift,
unsigned long *phpa, struct mm_iommu_table_group_mem_t **pmem)
{
long ret = 0;
struct mm_iommu_table_group_mem_t *mem;
- mem = mm_iommu_lookup(container->mm, tce, size);
+ mem = mm_iommu_lookup(container->mm, tce, 1ULL << shift);
if (!mem)
return -EINVAL;
@@ -487,7 +487,7 @@ static void tce_iommu_unuse_page_v2(struct tce_container *container,
if (!pua)
return;
- ret = tce_iommu_prereg_ua_to_hpa(container, *pua, IOMMU_PAGE_SIZE(tbl),
+ ret = tce_iommu_prereg_ua_to_hpa(container, *pua, tbl->it_page_shift,
&hpa, &mem);
if (ret)
pr_debug("%s: tce %lx at #%lx was not cached, ret=%d\n",
@@ -611,7 +611,7 @@ static long tce_iommu_build_v2(struct tce_container *container,
entry + i);
ret = tce_iommu_prereg_ua_to_hpa(container,
- tce, IOMMU_PAGE_SIZE(tbl), &hpa, &mem);
+ tce, tbl->it_page_shift, &hpa, &mem);
if (ret)
break;
--
2.11.0
^ permalink raw reply related
* Re: Constant ata messages on console with commit 28361c403683 ("libata: add extra internal command") (was Re: [GIT PULL 2/2] libata changes for v4.18-rc1)
From: Michael Ellerman @ 2018-06-19 7:29 UTC (permalink / raw)
To: Jens Axboe, Tejun Heo
Cc: linux-kernel, linux-ide, Linus Torvalds, linuxppc-dev
In-Reply-To: <ddef9feb-2764-6959-3a36-e97fbe377931@kernel.dk>
[-- Attachment #1: Type: text/plain, Size: 4048 bytes --]
Jens Axboe <axboe@kernel.dk> writes:
> On 6/18/18 1:33 AM, Michael Ellerman wrote:
>> Tejun Heo <tj@kernel.org> writes:
>> ...
>>> Jens Axboe (10):
>>> libata: introduce notion of separate hardware tags
>>> libata: convert core and drivers to ->hw_tag usage
>>> libata: bump ->qc_active to a 64-bit type
>>> libata: use ata_tag_internal() consistently
>>> libata: remove assumption that ATA_MAX_QUEUE - 1 is the max
>>> sata_nv: set host can_queue count appropriately
>>> libata: add extra internal command
>>
>> Replying here because I can't find the original mail.
>>
>> The above commit is causing one of my machines to constantly spew ata
>> messages on the console, according to bisect:
>>
>> # first bad commit: [28361c403683c2b00d4f5e76045f3ccd299bf99d] libata: add extra internal command
>>
>> To get it to boot I have to also apply:
>>
>> 88e10092f6a6 ("sata_fsl: use the right type for tag bitshift")
>>
>>
>> The system boots OK and seems fine, except that it's just printing
>> multiple of these per second:
>>
>> ata2: Signature Update detected @ 0 msecs
>> ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
>> ata2.00: configured for UDMA/100
>> ata2: Signature Update detected @ 0 msecs
>> ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
>> ata2.00: configured for UDMA/100
>> ata2: Signature Update detected @ 0 msecs
>> ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
>> ata2.00: configured for UDMA/100
>> ata2: Signature Update detected @ 0 msecs
>> ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
>> ata2.00: configured for UDMA/100
>> ata2: Signature Update detected @ 0 msecs
>>
>> And it never seems to stop.
>>
>> The machine is a Freescale/NXP P5020ds, using the sata_fsl driver
>> presumably. Any ideas?
>
> Hmm that's odd. Can you include the boot log from a working boot as
> well? Would be nice to see what devices are on the sata adapter.
> The above just looks like a hardreset loop.
Ah yep. I stupidly assumed it was working, because the machine booted,
but that's because the root disk is on ata1.
Booting the good kernel:
ba80c3a572f4 ("sata_nv: set host can_queue count appropriately")
I see:
root@p5020ds:~# ls -l /sys/class/ata_port/
total 0
lrwxrwxrwx 1 root root 0 Jun 19 06:49 ata1 -> ../../devices/platform/ffe000000.soc/ffe220000.sata/ata1/ata_port/ata1
lrwxrwxrwx 1 root root 0 Jun 19 17:06 ata2 -> ../../devices/platform/ffe000000.soc/ffe221000.sata/ata2/ata_port/ata2
root@p5020ds:~# ls -l /sys/class/block/ | grep ata
lrwxrwxrwx 1 root root 0 Jun 19 17:11 sda -> ../../devices/platform/ffe000000.soc/ffe220000.sata/ata1/host0/target0:0:0/0:0:0:0/block/sda
lrwxrwxrwx 1 root root 0 Jun 19 17:11 sda1 -> ../../devices/platform/ffe000000.soc/ffe220000.sata/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1
lrwxrwxrwx 1 root root 0 Jun 19 17:11 sda2 -> ../../devices/platform/ffe000000.soc/ffe220000.sata/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda2
lrwxrwxrwx 1 root root 0 Jun 19 17:11 sda5 -> ../../devices/platform/ffe000000.soc/ffe220000.sata/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda5
lrwxrwxrwx 1 root root 0 Jun 19 17:11 sr0 -> ../../devices/platform/ffe000000.soc/ffe221000.sata/ata2/host1/target1:0:0/1:0:0:0/block/sr0
So it's the DVD drive.
root@p5020ds:/sys/devices/platform/ffe000000.soc/ffe221000.sata/ata2/host1/target1:0:0/1:0:0:0/scsi_device/1:0:0:0/device# cat vendor
Optiarc
root@p5020ds:/sys/devices/platform/ffe000000.soc/ffe221000.sata/ata2/host1/target1:0:0/1:0:0:0/scsi_device/1:0:0:0/device# cat model
DVD RW AD-7260S
Full boot log from a good boot attached if that's helpful.
All of the above looks the same when I boot with the broken setup, it
just spams dmesg constantly.
One thing that is different, on the good kernel I see:
root@p5020ds:~# mount /dev/sr0 /mnt
mount: no medium found on /dev/sr0
vs bad (88e10092f6a6):
root@p5020ds:~# mount /dev/sr0 /mnt
mount: /dev/sr0 is already mounted or /mnt busy
cheers
[-- Attachment #2: good-boot.txt --]
[-- Type: text/plain, Size: 31608 bytes --]
U-Boot 2015.04-rc2-00081-g47d8ae4-dirty (Feb 26 2015 - 15:10:42)
CPU0: P5020E, Version: 2.0, (0x82280020)
Core: e5500, Version: 1.2, (0x80240012)
Clock Configuration:
CPU0:2000 MHz, CPU1:2000 MHz,
CCB:800 MHz,
DDR:666.667 MHz (1333.333 MT/s data rate) (Asynchronous), LBC:100 MHz
FMAN1: 600 MHz
QMAN: 400 MHz
PME: 400 MHz
L1: D-cache 32 KiB enabled
I-cache 32 KiB enabled
Reset Configuration Word (RCW):
00000000: 0c540000 00000000 1e120000 00000000
00000010: d8984a01 03002000 58000000 41000000
00000020: 00000000 00000000 00000000 10070000
00000030: 00000000 00000000 00000000 00000000
Board: P5020DS, Sys ID: 0x1c, Sys Ver: 0x12, FPGA Ver: 0x05, vBank: 0
SERDES Reference Clocks: Bank1=100Mhz Bank2=125Mhz Bank3=125Mhz
I2C: ready
SPI: ready
DRAM: Initializing....using SPD
Detected UDIMM i-DIMM
Detected UDIMM i-DIMM
2 GiB left unmapped
Testing 0x00000000 - 0x7fffffff
Testing 0x80000000 - 0xffffffff
Remap DDR 2 GiB left unmapped
4 GiB (DDR3, 64-bit, CL=9, ECC on)
DDR Controller Interleaving Mode: cache line
DDR Chip-Select Interleaving Mode: CS0+CS1
POST memory PASSED
Flash: 128 MiB
L2: 512 KiB enabled
Corenet Platform Cache: 2 MiB enabled
SRIO1: disabled
SRIO2: disabled
NAND: 1024 MiB
MMC: FSL_SDHC: 0
SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB, total 16 MiB
EEPROM: CRC mismatch (56e8e0ae != ffffffff)
PCIe1: Root Complex, no link, regs @ 0xfe200000
PCIe1: Bus 00 - 00
PCIe2: disabled
PCIe3: Root Complex, x2 gen1, regs @ 0xfe202000
02:00.0 - 8086:105e - Network controller
02:00.1 - 8086:105e - Network controller
PCIe3: Bus 01 - 02
PCIe4: disabled
In: serial
Out: serial
Err: serial
Net: Initializing Fman
SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB, total 16 MiB
Fman1: Data at 7fdf7f90 is not a firmware
e1000: 00:15:17:54:a8:b2
e1000: 00:15:17:54:a8:b3
e1000#0, e1000#1
Hit any key to stop autoboot: 0
Using e1000#0 device
TFTP from server 10.61.2.7; our IP address is 10.61.200.147
Filename 'p5020ds/uImage'.
Load address: 0x1000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
##############################################################
13.6 MiB/s
done
Bytes transferred = 6634161 (653ab1 hex)
Using e1000#0 device
TFTP from server 10.61.2.7; our IP address is 10.61.200.147
Filename 'p5020ds/p5020ds.dtb'.
Load address: 0xc000000
Loading: ###
6.2 MiB/s
done
Bytes transferred = 32322 (7e42 hex)
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 01000000 ...
Image Name: Linux-4.17.0-rc4-gcc-7.0.1-00013
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 6634097 Bytes = 6.3 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 0c000000
Booting using the fdt blob at 0xc000000
Uncompressing Kernel Image ... OK
Loading Device Tree to 03fe5000, end 03fffe41 ... OK
OF: reserved mem: initialized node qman-fqd, compatible id fsl,qman-fqd
OF: reserved mem: initialized node qman-pfdr, compatible id fsl,qman-pfdr
OF: reserved mem: initialized node bman-fbpr, compatible id fsl,bman-fbpr
MMU: Supported page sizes
4 KB as direct
4096 KB as direct
16384 KB as direct
65536 KB as direct
262144 KB as direct
1048576 KB as direct
MMU: Book3E HW tablewalk not supported
Linux version 4.17.0-rc4-gcc-7.0.1-00013-gba80c3a572f4 (michael@ka3.ozlabs.ibm.com) (gcc version 7.0.1 20170213 (experimental) (Custom 8e8a14c238db56c7)) #166 SMP Mon Jun 18 17:31:54 AEST 2018
Using CoreNet Generic machine description
bootconsole [udbg0] enabled
CPU maps initialized for 1 thread per core
-----------------------------------------------------
phys_mem_size = 0x100000000
dcache_bsize = 0x40
icache_bsize = 0x40
cpu_features = 0x00000003008003b4
possible = 0x00000003009003b6
always = 0x00000003008003b4
cpu_user_features = 0xcc008000 0x08000000
mmu_features = 0x000a0010
firmware_features = 0x0000000000000000
-----------------------------------------------------
CoreNet Generic board
Zone ranges:
DMA [mem 0x0000000000000000-0x000000007fffffff]
DMA32 empty
Normal [mem 0x0000000080000000-0x00000000ffffffff]
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x0000000000000000-0x00000000ffffffff]
Initmem setup node 0 [mem 0x0000000000000000-0x00000000ffffffff]
MMU: Allocated 2112 bytes of context maps for 255 contexts
percpu: Embedded 22 pages/cpu @ (ptrval) s51416 r0 d38696 u524288
Built 1 zonelists, mobility grouping on. Total pages: 1034240
Kernel command line: root=/dev/sda1 rw console=ttyS0,115200
Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
Memory: 3995012K/4194304K available (9988K kernel code, 1964K rwdata, 3212K rodata, 524K init, 306K bss, 199292K reserved, 0K cma-reserved)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Hierarchical RCU implementation.
RCU event tracing is enabled.
RCU restricting CPUs from NR_CPUS=24 to nr_cpu_ids=2.
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
NR_IRQS: 512, nr_irqs: 512, preallocated irqs: 16
mpic: Setting up MPIC " OpenPIC " version 1.2 at ffe040000, max 2 CPUs
mpic: ISU size: 512, shift: 9, mask: 1ff
mpic: Initializing for 512 sources
clocksource: timebase: mask: 0xffffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
clocksource: timebase mult[28000000] shift[24] registered
Console: colour dummy device 80x25
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
e500 family performance monitor hardware support registered
Hierarchical SRCU implementation.
smp: Bringing up secondary CPUs ...
smp: Brought up 1 node, 2 CPUs
Using standard scheduler topology
devtmpfs: initialized
random: get_random_u32 called from .bucket_table_alloc+0x9c/0x22c with crng_init=0
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
futex hash table entries: 512 (order: 3, 32768 bytes)
NET: Registered protocol family 16
audit: initializing netlink subsys (disabled)
audit: type=2000 audit(0.044:1): state=initialized audit_enabled=0 res=1
Machine: fsl,P5020DS
SoC family: QorIQ
SoC ID: svr:0x82280020, Revision: 2.0
Found FSL PCI host bridge at 0x0000000ffe200000. Firmware bus number: 0->0
PCI host bridge /pcie@ffe200000 ranges:
MEM 0x0000000c00000000..0x0000000c1fffffff -> 0x00000000e0000000
IO 0x0000000ff8000000..0x0000000ff800ffff -> 0x0000000000000000
/pcie@ffe200000: PCICSRBAR @ 0xdf000000
setup_pci_atmu: end of DRAM 100000000
/pcie@ffe200000: Setup 64-bit PCI DMA window
/pcie@ffe200000: DMA window size is 0xdf000000
Found FSL PCI host bridge at 0x0000000ffe202000. Firmware bus number: 0->1
PCI host bridge /pcie@ffe202000 ranges:
MEM 0x0000000c40000000..0x0000000c5fffffff -> 0x00000000e0000000
IO 0x0000000ff8020000..0x0000000ff802ffff -> 0x0000000000000000
/pcie@ffe202000: PCICSRBAR @ 0xdf000000
setup_pci_atmu: end of DRAM 100000000
/pcie@ffe202000: Setup 64-bit PCI DMA window
/pcie@ffe202000: DMA window size is 0xdf000000
iommu: Adding device ff4200000.qman-portal to group 0
iommu: Adding device ff4204000.qman-portal to group 1
iommu: Adding device ff4208000.qman-portal to group 2
iommu: Adding device ff420c000.qman-portal to group 3
iommu: Adding device ff4210000.qman-portal to group 4
iommu: Adding device ff4214000.qman-portal to group 5
iommu: Adding device ff4218000.qman-portal to group 6
iommu: Adding device ff421c000.qman-portal to group 7
iommu: Adding device ff4220000.qman-portal to group 8
iommu: Adding device ff4224000.qman-portal to group 9
iommu: Adding device ffe100300.dma to group 10
iommu: Adding device ffe101300.dma to group 11
iommu: Adding device ffe114000.sdhc to group 12
iommu: Adding device ffe210000.usb to group 13
iommu: Adding device ffe211000.usb to group 14
iommu: Adding device ffe220000.sata to group 15
iommu: Adding device ffe221000.sata to group 16
iommu: Adding device ffe318000.qman to group 17
iommu: Adding device ffe31a000.bman to group 18
iommu: Adding device ffe200000.pcie to group 19
iommu: Adding device ffe202000.pcie to group 20
software IO TLB [mem 0xf4800000-0xf8800000] (64MB) mapped at [ (ptrval)- (ptrval)]
PCI: Probing PCI hardware
fsl-pci ffe200000.pcie: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io 0x8000080000010000-0x800008000001ffff] (bus address [0x0000-0xffff])
pci_bus 0000:00: root bus resource [mem 0xc00000000-0xc1fffffff] (bus address [0xe0000000-0xffffffff])
pci_bus 0000:00: root bus resource [bus 00]
iommu: Removing device ffe200000.pcie from group 19
iommu: Adding device 0000:00:00.0 to group 19
pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:00:00.0: PCI bridge to [bus 01-ff]
fsl-pci ffe202000.pcie: PCI host bridge to bus 2000:00
pci_bus 2000:00: root bus resource [io 0x8000080000021000-0x8000080000030fff] (bus address [0x0000-0xffff])
pci_bus 2000:00: root bus resource [mem 0xc40000000-0xc5fffffff] (bus address [0xe0000000-0xffffffff])
pci_bus 2000:00: root bus resource [bus 00-01]
iommu: Removing device ffe202000.pcie from group 20
iommu: Adding device 2000:00:00.0 to group 20
iommu: Adding device 2000:01:00.0 to group 20
iommu: Adding device 2000:01:00.1 to group 20
pci 2000:00:00.0: PCI bridge to [bus 01-ff]
PCI: Cannot allocate resource region 0 of device 0000:00:00.0, will remap
PCI: Cannot allocate resource region 0 of device 2000:00:00.0, will remap
pci 0000:00:00.0: BAR 0: no space for [mem size 0x01000000]
pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x01000000]
pci 0000:00:00.0: PCI bridge to [bus 01]
pci 0000:00:00.0: bridge window [io 0x8000080000010000-0x800008000001ffff]
pci 0000:00:00.0: bridge window [mem 0xc00000000-0xc1fffffff]
pci_bus 0000:00: Some PCI device resources are unassigned, try booting with pci=realloc
pci 2000:00:00.0: BAR 0: no space for [mem size 0x01000000]
pci 2000:00:00.0: BAR 0: failed to assign [mem size 0x01000000]
pci 2000:01:00.0: BAR 6: assigned [mem 0xc40080000-0xc4009ffff pref]
pci 2000:01:00.1: BAR 6: assigned [mem 0xc400a0000-0xc400bffff pref]
pci 2000:00:00.0: PCI bridge to [bus 01]
pci 2000:00:00.0: bridge window [io 0x8000080000021000-0x8000080000030fff]
pci 2000:00:00.0: bridge window [mem 0xc40000000-0xc5fffffff]
pci_bus 2000:00: Some PCI device resources are unassigned, try booting with pci=realloc
HugeTLB registered 4.00 MiB page size, pre-allocated 0 pages
HugeTLB registered 16.0 MiB page size, pre-allocated 0 pages
HugeTLB registered 64.0 MiB page size, pre-allocated 0 pages
HugeTLB registered 256 MiB page size, pre-allocated 0 pages
HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
Freescale Elo series DMA driver
fsl-elo-dma ffe100300.dma: #0 (fsl,eloplus-dma-channel), irq 28
fsl-elo-dma ffe100300.dma: #1 (fsl,eloplus-dma-channel), irq 29
fsl-elo-dma ffe100300.dma: #2 (fsl,eloplus-dma-channel), irq 30
fsl-elo-dma ffe100300.dma: #3 (fsl,eloplus-dma-channel), irq 31
fsl-elo-dma ffe101300.dma: #0 (fsl,eloplus-dma-channel), irq 32
fsl-elo-dma ffe101300.dma: #1 (fsl,eloplus-dma-channel), irq 33
fsl-elo-dma ffe101300.dma: #2 (fsl,eloplus-dma-channel), irq 34
fsl-elo-dma ffe101300.dma: #3 (fsl,eloplus-dma-channel), irq 35
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
EDAC MC: Ver: 3.0.0
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource timebase
NET: Registered protocol family 2
tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes)
TCP established hash table entries: 32768 (order: 6, 262144 bytes)
TCP bind hash table entries: 32768 (order: 7, 524288 bytes)
TCP: Hash tables configured (established 32768 bind 32768)
UDP hash table entries: 2048 (order: 4, 65536 bytes)
UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
workingset: timestamp_bits=62 max_order=20 bucket_order=0
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
ntfs: driver 2.1.32 [Flags: R/O].
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
io scheduler mq-deadline registered
io scheduler kyber registered
pcieport 0000:00:00.0: AER enabled with IRQ 482
pcieport 2000:00:00.0: AER enabled with IRQ 480
bman_portal ff4000000.bman-portal: Portal initialised, cpu 0
bman_portal ff4004000.bman-portal: Portal initialised, cpu 1
qman_portal ff4200000.qman-portal: Portal initialised, cpu 0
qman_portal ff4204000.qman-portal: Portal initialised, cpu 1
Serial: 8250/16550 driver, 6 ports, IRQ sharing enabled
console [ttyS0] disabled
serial8250.0: ttyS0 at MMIO 0xffe11c500 (irq = 36, base_baud = 24999999) is a 16550A
console [ttyS0] enabled
console [ttyS0] enabled
bootconsole [udbg0] disabled
bootconsole [udbg0] disabled
serial8250.0: ttyS1 at MMIO 0xffe11c600 (irq = 36, base_baud = 24999999) is a 16550A
serial8250.0: ttyS2 at MMIO 0xffe11d500 (irq = 37, base_baud = 24999999) is a 16550A
serial8250.0: ttyS3 at MMIO 0xffe11d600 (irq = 37, base_baud = 24999999) is a 16550A
ePAPR hypervisor byte channel driver
brd: module loaded
loop: module loaded
st: Version 20160209, fixed bufsize 32768, s/g segs 256
fsl-sata ffe220000.sata: Sata FSL Platform/CSB Driver init
scsi host0: sata_fsl
ata1: SATA max UDMA/133 irq 68
fsl-sata ffe221000.sata: Sata FSL Platform/CSB Driver init
ata1: Signature Update detected @ 0 msecs
scsi host1: sata_fsl
ata2: SATA max UDMA/133 irq 69
ata2: Signature Update detected @ 0 msecs
fe8000000.flash: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x002801
Amd/Fujitsu Extended Query Table at 0x0040
Amd/Fujitsu Extended Query version 1.3.
number of CFI chips: 1
ftl_cs: FTL header not found.
nand: device found, Manufacturer ID: 0x20, Chip ID: 0xd3
nand: ST Micro NAND08GW3B2CN6
nand: 1024 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
nand_read_bbt: bad block at 0x00000b9e0000
6 fixed-partitions partitions found on MTD device fffa00000.flash
Creating 6 MTD partitions on "fffa00000.flash":
0x000000000000-0x000002000000 : "NAND U-Boot Image"
ftl_cs: FTL header not found.
0x000002000000-0x000012000000 : "NAND Root File System"
ftl_cs: FTL header not found.
0x000012000000-0x00001a000000 : "NAND Compressed RFS Image"
ftl_cs: FTL header not found.
0x00001a000000-0x00001e000000 : "NAND Linux Kernel Image"
ftl_cs: FTL header not found.
0x00001e000000-0x00001f000000 : "NAND DTB Image"
ftl_cs: FTL header not found.
0x00001f000000-0x000040000000 : "NAND Writable User area"
ftl_cs: FTL header not found.
eLBC NAND device at 0xfffa00000, bank 2
fsl_espi ffe110000.spi: cs=0, init_csmode=0x100008
m25p80 spi0.0: found s25fl129p1, expected s25sl12801
m25p80 spi0.0: s25fl129p1 (16384 Kbytes)
4 fixed-partitions partitions found on MTD device spi0.0
Creating 4 MTD partitions on "spi0.0":
0x000000000000-0x000000100000 : "u-boot"
ftl_cs: FTL header not found.
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
0x000000100000-0x000000600000 : "kernel"
ata1.00: ATA-8: Hitachi HDS721050CLA362, JP2OA3MA, max UDMA/133
ata1.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 16/32)
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ftl_cs: FTL header not found.
ata2.00: ATAPI: Optiarc DVD RW AD-7260S, 1.03, max UDMA/100
ata1.00: configured for UDMA/133
0x000000600000-0x000000700000 : "dtb"
scsi 0:0:0:0: Direct-Access ATA Hitachi HDS72105 A3MA PQ: 0 ANSI: 5
ata2.00: configured for UDMA/100
sd 0:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/466 GiB)
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
scsi 1:0:0:0: CD-ROM Optiarc DVD RW AD-7260S 1.03 PQ: 0 ANSI: 5
random: fast init done
ftl_cs: FTL header not found.
0x000000700000-0x000001000000 : "file system"
ftl_cs: FTL header not found.
fsl_espi ffe110000.spi: at 0x (ptrval) (irq = 53)
libphy: Fixed MDIO Bus: probed
libphy: Freescale XGMAC MDIO Bus: probed
mdio_bus ffe4f1000: Error while reading PHY4 reg at 1.6
mdio_bus ffe4f1000: Error while reading PHY4 reg at 1.5
mdio_bus ffe4f1000: Error while reading PHY4 reg at 0.6
sda: sda1 sda2 < sda5 >
mdio_bus ffe4f1000: Error while reading PHY4 reg at 0.5
sd 0:0:0:0: [sda] Attached SCSI disk
mdio_bus ffe4f1000: MDIO device at address 4 is missing.
mdio_bus ffe4f1000: Error while reading PHY0 reg at 1.6
mdio_bus ffe4f1000: Error while reading PHY0 reg at 1.5
mdio_bus ffe4f1000: Error while reading PHY0 reg at 0.6
mdio_bus ffe4f1000: Error while reading PHY0 reg at 0.5
mdio_bus ffe4f1000: MDIO device at address 0 is missing.
libphy: Freescale PowerQUICC MII Bus: probed
mdio_bus mdio@ffe4e1120: MDIO device at address 8 is missing.
libphy: Freescale PowerQUICC MII Bus: probed
libphy: Freescale PowerQUICC MII Bus: probed
libphy: Freescale PowerQUICC MII Bus: probed
libphy: Freescale PowerQUICC MII Bus: probed
sr 1:0:0:0: [sr0] scsi3-mmc drive: 48x/48x writer dvd-ram cd/rw xa/form2 cdda tray
fsl_dpaa_mac: of_phy_find_device (TBI PHY) failed
cdrom: Uniform CD-ROM driver Revision: 3.20
fsl_dpaa_mac ffe4e0000.ethernet: mac_dev->init() = -22
fsl_dpaa_mac: probe of ffe4e0000.ethernet failed with error -22
fsl_dpaa_mac ffe4e2000.ethernet: FMan dTSEC version: 0x08240101
sr 1:0:0:0: Attached scsi generic sg1 type 5
fsl_dpaa_mac ffe4e2000.ethernet: FMan MAC address: 00:15:17:54:a8:b3
fsl_dpaa_mac ffe4e4000.ethernet: of_get_mac_address(/soc@ffe000000/fman@400000/ethernet@e4000) failed
fsl_dpaa_mac: probe of ffe4e4000.ethernet failed with error -22
fsl_dpaa_mac ffe4e6000.ethernet: of_get_mac_address(/soc@ffe000000/fman@400000/ethernet@e6000) failed
fsl_dpaa_mac: probe of ffe4e6000.ethernet failed with error -22
fsl_dpaa_mac ffe4e8000.ethernet: of_get_mac_address(/soc@ffe000000/fman@400000/ethernet@e8000) failed
fsl_dpaa_mac: probe of ffe4e8000.ethernet failed with error -22
fsl_dpaa_mac ffe4f0000.ethernet: of_get_mac_address(/soc@ffe000000/fman@400000/ethernet@f0000) failed
fsl_dpaa_mac: probe of ffe4f0000.ethernet failed with error -22
fsl_dpaa_mac ffe4e2000.ethernet eth0: Probed interface eth0
e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
e1000: Copyright (c) 1999-2006 Intel Corporation.
e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
e1000e 2000:01:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
e1000e 2000:01:00.0 eth1: (PCI Express:2.5GT/s:Width x1) 00:15:17:54:a8:b2
e1000e 2000:01:00.0 eth1: Intel(R) PRO/1000 Network Connection
e1000e 2000:01:00.0 eth1: MAC: 0, PHY: 4, PBA No: D50868-003
e1000e 2000:01:00.1: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
e1000e 2000:01:00.1 eth2: (PCI Express:2.5GT/s:Width x1) 00:15:17:54:a8:b3
e1000e 2000:01:00.1 eth2: Intel(R) PRO/1000 Network Connection
e1000e 2000:01:00.1 eth2: MAC: 0, PHY: 4, PBA No: D50868-003
igb: Intel(R) Gigabit Ethernet Network Driver - version 5.4.0-k
igb: Copyright (c) 2007-2014 Intel Corporation.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci-pci: OHCI PCI platform driver
ehci-fsl: Freescale EHCI Host controller driver
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 44, io mem 0xffe210000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
usbcore: registered new interface driver usb-storage
i2c /dev entries driver
mpc-i2c ffe118100.i2c: timeout 1000000 us
at24 0-0051: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
at24 0-0052: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
mpc-i2c ffe119100.i2c: timeout 1000000 us
rtc-ds3232 1-0068: rtc core: registered ds3232 as rtc0
mpc-i2c ffe118000.i2c: timeout 1000000 us
mpc-i2c ffe119000.i2c: timeout 1000000 us
ina2xx 1-0040: power monitor ina220 (Rshunt = 1000 uOhm)
ina2xx 1-0041: power monitor ina220 (Rshunt = 1000 uOhm)
ina2xx 1-0044: power monitor ina220 (Rshunt = 1000 uOhm)
ina2xx 1-0045: power monitor ina220 (Rshunt = 1000 uOhm)
Freescale(R) MPC85xx EDAC driver, (C) 2006 Montavista Software
EDAC MC0: Giving out device to module fsl_ddr_edac controller fsl_mc_err: DEV fsl_mc_err (INTERRUPT)
fsl_ddr_edac acquired irq 490 for MC
fsl_ddr_edac MC err registered
EDAC MC1: Giving out device to module fsl_ddr_edac controller fsl_mc_err: DEV fsl_mc_err (INTERRUPT)
fsl_ddr_edac acquired irq 489 for MC
fsl_ddr_edac MC err registered
EDAC PCI0: Giving out device to module MPC85xx_edac controller mpc85xx_pci_err: DEV mpc85xx-pci-edac.0.auto (INTERRUPT)
MPC85xx_edac acquired irq 482 for PCI Err
MPC85xx_edac PCI err registered
EDAC PCI1: Giving out device to module MPC85xx_edac controller mpc85xx_pci_err: DEV mpc85xx-pci-edac.1.auto (INTERRUPT)
MPC85xx_edac acquired irq 480 for PCI Err
MPC85xx_edac PCI err registered
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: SDHCI controller on ffe114000.sdhc [ffe114000.sdhc] using ADMA
iommu: Adding device ffe301000.jr to group 21
iommu: Adding device ffe302000.jr to group 22
iommu: Adding device ffe303000.jr to group 23
iommu: Adding device ffe304000.jr to group 24
platform caam_qi: Linux CAAM Queue I/F driver initialised
caam ffe300000.crypto: device ID = 0x0a12010000000000 (Era 3)
caam ffe300000.crypto: job rings = 4, qi = 1, dpaa2 = no
caam algorithms registered in /proc/crypto
platform caam_qi: algorithms registered in /proc/crypto
caam_jr ffe301000.jr: registering rng-caam
caam ffe300000.crypto: caam pkc algorithms registered in /proc/crypto
Freescale hypervisor management driver
fsl-hv: no hypervisor found
ipip: IPv4 and MPLS over IPv4 tunneling driver
Initializing XFRM netlink socket
NET: Registered protocol family 10
Segment Routing with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 15
Key type dns_resolver registered
drmem: No dynamic reconfiguration memory found
libphy: mdio_mux: probed
libphy: mdio_mux: probed
mdio_bus 0.48: MDIO device at address 28 is missing.
mdio_bus 0.48: MDIO device at address 29 is missing.
mdio_bus 0.48: MDIO device at address 30 is missing.
rtc-ds3232 1-0068: setting system clock to 2018-06-19 06:49:28 UTC (1529390968)
ALSA device list:
No soundcards found.
EXT4-fs (sda1): warning: maximal mount count reached, running e2fsck is recommended
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 8:1.
devtmpfs: mounted
Freeing unused kernel memory: 524K
This architecture does not have kernel memory protection.
systemd[1]: Failed to insert module 'autofs4': No such file or directory
random: systemd: uninitialized urandom read (16 bytes read)
systemd[1]: systemd 230 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
systemd[1]: Detected architecture ppc64.
Welcome to Debian GNU/Linux stretch/sid!
systemd[1]: Set hostname to <p5020ds>.
random: systemd: uninitialized urandom read (16 bytes read)
random: systemd-cryptse: uninitialized urandom read (16 bytes read)
systemd[1]: Listening on Journal Socket.
[ OK ] Listening on Journal Socket.
systemd[1]: Listening on Journal Socket (/dev/log).
[ OK ] Listening on Journal Socket (/dev/log).
systemd[1]: Listening on udev Kernel Socket.
[ OK ] Listening on udev Kernel Socket.
systemd[1]: Listening on udev Control Socket.
[ OK ] Listening on udev Control Socket.
systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ OK ] Started Forward Password Requests to Wall Directory Watch.
systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[ OK ] Listening on /dev/initctl Compatibility Named Pipe.
systemd[1]: Listening on Journal Audit Socket.
[ OK ] Listening on Journal Audit Socket.
[ OK ] Listening on Syslog Socket.
[ OK ] Listening on RPCbind Server Activation Socket.
[ OK ] Listening on fsck to fsckd communication Socket.
[ OK ] Created slice User and Session Slice.
[ OK ] Reached target Encrypted Volumes.
[UNSUPP] Starting of Arbitrary Executable Fi...m Automount Point not supported.
[ OK ] Created slice System Slice.
Starting hwclockfirst.service...
[ OK ] Reached target Slices.
Starting Set the console keyboard layout...
[ OK ] Created slice system-getty.slice.
Mounting RPC Pipe File System...
Mounting Debug File System...
Mounting POSIX Message Queue File System...
Starting Journal Service...
Mounting Huge Pages File System...
Starting Load Kernel Modules...
[ OK ] Created slice system-serial\x2dgetty.slice.
[ OK ] Started Dispatch Password Requests to Console Directory Watch.
[ OK ] Reached target Paths.
Starting Create Static Device Nodes in /dev...
[FAILED] Failed to start Load Kernel Modules.
See 'systemctl status systemd-modules-load.service' for details.
Starting Apply Kernel Variables...
[ OK ] Started Journal Service.
[ OK ] Started Apply Kernel Variables.
[ OK ] Mounted Huge Pages File System.
[ OK ] Mounted Debug File System.
[ OK ] Mounted POSIX Message Queue File System.
[ OK ] Mounted RPC Pipe File System.
random: crng init done
random: 7 urandom warning(s) missed due to ratelimiting
[ OK ] Started Create Static Device Nodes in /dev.
Starting udev Kernel Device Manager...
[ OK ] Started Set the console keyboard layout.
[ OK ] Started udev Kernel Device Manager.
[ OK ] Started hwclockfirst.service.
Starting Remount Root and Kernel File Systems...
EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro
[ OK ] Started Remount Root and Kernel File Systems.
Starting udev Coldplug all Devices...
[ OK ] Reached target Local File Systems (Pre).
[ OK ] Reached target Local File Systems.
Starting Set console font and keymap...
Starting Raise network interfaces...
Starting Preprocess NFS configuration...
Starting Load/Save Random Seed...
Starting Flush Journal to Persistent Storage...
systemd-journald[1527]: Received request to flush runtime journal from PID 1
[ OK ] Started Flush Journal to Persistent Storage.
[ OK ] Started Set console font and keymap.
[ OK ] Started Preprocess NFS configuration.
[ OK ] Started Load/Save Random Seed.
[ OK ] Reached target NFS client services.
Starting Create Volatile Files and Directories...
[ OK ] Started udev Coldplug all Devices.
[ OK ] Started Create Volatile Files and Directories.
[ OK ] Reached target System Time Synchronized.
Starting Update UTMP about System Boot/Shutdown...
Starting RPC bind portmap service...
fsl_dpaa_mac ffe4e2000.ethernet rename3: renamed from eth0
[ OK ] Found device /dev/ttyS0.
e1000e 2000:01:00.1 rename5: renamed from eth2
e1000e 2000:01:00.0 eth0: renamed from eth1
fsl_dpaa_mac ffe4e2000.ethernet eth1: renamed from rename3
[ OK ] Started Update UTMP about System Boot/Shutdown.
[ OK ] Found device Hitachi_HDS721050CLA362 5.
[ OK ] Started Raise network interfaces.
[ OK ] Started ifup for eth0.
[ OK ] Reached target Network.
[ OK ] Reached target Network is Online.
Activating swap /dev/disk/by-uuid/3...8-d132-4ebe-80c2-ca8afd64689c...
[ OK ] Started RPC bind portmap service.
[ OK ] Reached target RPC Port Mapper.
[ OK ] Reached target Remote File Systems (Pre).
[ OK ] Reached target Remote File Systems.
Adding 7918588k swap on /dev/sda5. Priority:-2 extents:1 across:7918588k
[ OK ] Activated swap /dev/disk/by-uuid/31de3858-d132-4ebe-80c2-ca8afd64689c.
[ OK ] Reached target Swap.
[ OK ] Reached target System Initialization.
[ OK ] Listening on D-Bus System Message Bus Socket.
[ OK ] Reached target Sockets.
[ OK ] Reached target Basic System.
Starting Permit User Sessions...
[ OK ] Started Regular background program processing daemon.
Starting OpenBSD Secure Shell server...
[ OK ] Started Deferred execution scheduler.
Starting System Logging Service...
Starting Login Service...
Starting /etc/rc.local Compatibility...
[ OK ] Started Daily apt activities.
Starting LSB: exim Mail Transport Agent...
[ OK ] Started D-Bus System Message Bus.
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ OK ] Started Daily Cleanup of Temporary Directories.
[ OK ] Reached target Timers.
Starting LSB: Start NTP daemon...
[ OK ] Started Permit User Sessions.
[ OK ] Started /etc/rc.local Compatibility.
[ OK ] Started System Logging Service.
[ OK ] Started Login Service.
[ OK ] Started Getty on tty1.
[ OK ] Started Serial Getty on ttyS0.
[ OK ] Reached target Login Prompts.
[ OK ] Started OpenBSD Secure Shell server.
[ OK ] Started LSB: Start NTP daemon.
[ OK ] Started LSB: exim Mail Transport Agent.
[ OK ] Reached target Multi-User System.
[ OK ] Reached target Graphical Interface.
Starting Update UTMP about System Runlevel Changes...
[ OK ] Started Update UTMP about System Runlevel Changes.
e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Debian GNU/Linux stretch/sid p5020ds ttyS0
^ permalink raw reply
* Re: Build regressions/improvements in v4.18-rc1
From: Geert Uytterhoeven @ 2018-06-19 6:49 UTC (permalink / raw)
To: Michael Ellerman
Cc: Linux Kernel Mailing List, Linux MIPS Mailing List, linux-ia64,
Linux-sh list, sparclinux, Andrew Morton, linuxppc-dev
In-Reply-To: <87vaafxp0k.fsf@concordia.ellerman.id.au>
Hi Michael,
On Tue, Jun 19, 2018 at 8:35 AM Michael Ellerman <mpe@ellerman.id.au> wrote=
:
> Geert Uytterhoeven <geert@linux-m68k.org> writes:
> > On Mon, Jun 18, 2018 at 11:18 AM Geert Uytterhoeven
> > <geert@linux-m68k.org> wrote:
> >> Below is the list of build error/warning regressions/improvements in
> >> v4.18-rc1[1] compared to v4.17[2].
> >> + /kisskb/src/mm/memblock.c: error: redefinition of 'memblock_virt_a=
lloc_try_nid': =3D> 1413:15
> >> + /kisskb/src/mm/memblock.c: error: redefinition of 'memblock_virt_a=
lloc_try_nid_nopanic': =3D> 1377:15
> >> + /kisskb/src/mm/memblock.c: error: redefinition of 'memblock_virt_a=
lloc_try_nid_raw': =3D> 1340:15
> >
> > ia64/ia64-defconfig
> > mips/bigsur_defconfig
> > mips/cavium_octeon_defconfig
> > mips/ip22_defconfig
> > mips/ip27_defconfig
> > mips/ip32_defconfig
> > mips/malta_defconfig
> > mips/mips-allmodconfig
> > mips/mips-allnoconfig
> > mips/mips-defconfig
> > mipsel/mips-allmodconfig
> > mipsel/mips-allnoconfig
> > mipsel/mips-defconfig
>
> These are now fixed in Linus' tree by:
>
> 6cc22dc08a24 ("revert "mm/memblock: add missing include <linux/bootmem.=
h>"")
Good.
> >> + error: ".radix__flush_pwc_lpid" [arch/powerpc/kvm/kvm-hv.ko] undef=
ined!: =3D> N/A
> >> + error: ".radix__flush_tlb_lpid_page" [arch/powerpc/kvm/kvm-hv.ko] =
undefined!: =3D> N/A
> >> + error: ".radix__local_flush_tlb_lpid_guest" [arch/powerpc/kvm/kvm-=
hv.ko] undefined!: =3D> N/A
> >> + error: "radix__flush_pwc_lpid" [arch/powerpc/kvm/kvm-hv.ko] undefi=
ned!: =3D> N/A
> >> + error: "radix__flush_tlb_lpid_page" [arch/powerpc/kvm/kvm-hv.ko] u=
ndefined!: =3D> N/A
> >> + error: "radix__local_flush_tlb_lpid_guest" [arch/powerpc/kvm/kvm-h=
v.ko] undefined!: =3D> N/A
> >
> > powerpc/ppc64_defconfig+NO_RADIX
> > ppc64le/powernv_defconfig+NO_RADIX (what's in a name ;-)
>
> Can you tell we don't test that combination very often :/
That's why you have a special config for it? ;-)
> >> + {standard input}: Error: offset to unaligned destination: =3D> 22=
68, 2316, 1691, 1362, 1455, 1598, 2502, 1645, 1988, 1927, 1409, 2615, 1548,=
2409, 1268, 2363, 1314, 1208, 1785, 2034, 2222, 2661, 1880, 2552, 1161, 20=
82, 1833, 2455, 2176, 2129, 1501, 1738
> >
> > sh4/sh-randconfig (doesn't seem to be a new issue, seen before on v4.12=
-rc3)
>
> I think I'll disable that one, it's been broken more often that not and
> I doubt anyone is that motivated to fix sh4 randconfig breakages?
Probably not. Usually I ignore the commonly seen issues.
This one was more uncommon, so I kept it.
> Relatedly I might move all the randconfig targets from Linus' tree into
> a separate "linus-rand" tree, so that they don't pollute the results, as
> I've done for linux-next.
Sounds look a good thing.
Gr{oetje,eeting}s,
Geert
--=20
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k=
.org
In personal conversations with technical people, I call myself a hacker. Bu=
t
when I'm talking to journalists I just say "programmer" or something like t=
hat.
-- Linus Torvalds
^ permalink raw reply
* Re: Build regressions/improvements in v4.18-rc1
From: Michael Ellerman @ 2018-06-19 6:35 UTC (permalink / raw)
To: Geert Uytterhoeven, Linux Kernel Mailing List
Cc: Linux MIPS Mailing List, linux-ia64, Linux-sh list, sparclinux,
Andrew Morton, linuxppc-dev
In-Reply-To: <CAMuHMdULmiArTvYsEqnyg5SB6PqjZnNANLAyYcqqYeYmHKJ5Dw@mail.gmail.com>
Geert Uytterhoeven <geert@linux-m68k.org> writes:
> On Mon, Jun 18, 2018 at 11:18 AM Geert Uytterhoeven
> <geert@linux-m68k.org> wrote:
>> Below is the list of build error/warning regressions/improvements in
>> v4.18-rc1[1] compared to v4.17[2].
>>
>> Summarized:
>> - build errors: +11/-1
>
>> [1] http://kisskb.ellerman.id.au/kisskb/head/ce397d215ccd07b8ae3f71db689aedb85d56ab40/ (233 out of 244 configs)
>> [2] http://kisskb.ellerman.id.au/kisskb/head/29dcea88779c856c7dc92040a0c01233263101d4/ (all 244 configs)
>
>> 11 error regressions:
>> + /kisskb/src/drivers/ata/pata_ali.c: error: implicit declaration of function 'pci_domain_nr' [-Werror=implicit-function-declaration]: => 469:38
>
> sparc64/sparc-allmodconfig
>
>> + /kisskb/src/mm/memblock.c: error: redefinition of 'memblock_virt_alloc_try_nid': => 1413:15
>> + /kisskb/src/mm/memblock.c: error: redefinition of 'memblock_virt_alloc_try_nid_nopanic': => 1377:15
>> + /kisskb/src/mm/memblock.c: error: redefinition of 'memblock_virt_alloc_try_nid_raw': => 1340:15
>
> ia64/ia64-defconfig
> mips/bigsur_defconfig
> mips/cavium_octeon_defconfig
> mips/ip22_defconfig
> mips/ip27_defconfig
> mips/ip32_defconfig
> mips/malta_defconfig
> mips/mips-allmodconfig
> mips/mips-allnoconfig
> mips/mips-defconfig
> mipsel/mips-allmodconfig
> mipsel/mips-allnoconfig
> mipsel/mips-defconfig
These are now fixed in Linus' tree by:
6cc22dc08a24 ("revert "mm/memblock: add missing include <linux/bootmem.h>"")
>> + error: ".radix__flush_pwc_lpid" [arch/powerpc/kvm/kvm-hv.ko] undefined!: => N/A
>> + error: ".radix__flush_tlb_lpid_page" [arch/powerpc/kvm/kvm-hv.ko] undefined!: => N/A
>> + error: ".radix__local_flush_tlb_lpid_guest" [arch/powerpc/kvm/kvm-hv.ko] undefined!: => N/A
>> + error: "radix__flush_pwc_lpid" [arch/powerpc/kvm/kvm-hv.ko] undefined!: => N/A
>> + error: "radix__flush_tlb_lpid_page" [arch/powerpc/kvm/kvm-hv.ko] undefined!: => N/A
>> + error: "radix__local_flush_tlb_lpid_guest" [arch/powerpc/kvm/kvm-hv.ko] undefined!: => N/A
>
> powerpc/ppc64_defconfig+NO_RADIX
> ppc64le/powernv_defconfig+NO_RADIX (what's in a name ;-)
Can you tell we don't test that combination very often :/
>> + {standard input}: Error: offset to unaligned destination: => 2268, 2316, 1691, 1362, 1455, 1598, 2502, 1645, 1988, 1927, 1409, 2615, 1548, 2409, 1268, 2363, 1314, 1208, 1785, 2034, 2222, 2661, 1880, 2552, 1161, 2082, 1833, 2455, 2176, 2129, 1501, 1738
>
> sh4/sh-randconfig (doesn't seem to be a new issue, seen before on v4.12-rc3)
I think I'll disable that one, it's been broken more often that not and
I doubt anyone is that motivated to fix sh4 randconfig breakages?
http://kisskb.ellerman.id.au/kisskb/target/1826/
Relatedly I might move all the randconfig targets from Linus' tree into
a separate "linus-rand" tree, so that they don't pollute the results, as
I've done for linux-next.
cheers
^ permalink raw reply
* Re: [PATCH 1/3] powerpc: mac: fix rtc read functions
From: Mathieu Malaterre @ 2018-06-19 5:47 UTC (permalink / raw)
To: schwab
Cc: Arnd Bergmann, Paul Mackerras, Michael Ellerman,
Geert Uytterhoeven, funaho, Benjamin Herrenschmidt, gerg,
linux-m68k, linuxppc-dev, LKML, y2038, Meelis Roos,
Alexandre Belloni
In-Reply-To: <87efh3hndq.fsf@igel.home>
On Mon, Jun 18, 2018 at 10:04 PM Andreas Schwab <schwab@linux-m68k.org> wrote:
>
> On Jun 18 2018, Mathieu Malaterre <malat@debian.org> wrote:
>
> > Sadly, trying again today does not work anymore. Adding some printk
> > just before WARN_ON:
> >
> > +printk(KERN_ERR " rtc DBG pmu_get_time1: %lld %d %lld \n", now,
> > RTC_OFFSET, now - RTC_OFFSET );
> > +printk(KERN_ERR " rtc DBG pmu_get_time2: %x %x %x %x %d \n",
> > req.reply[0], req.reply[1], req.reply[2], req.reply[3] ,
> > req.reply_len);
> >
> > leads to:
> >
> > [ 0.000000] rtc DBG pmu_get_time1: 14096662 2082844800 -2068748138
> > [ 0.000000] rtc DBG pmu_get_time2: 0 d7 19 16 4
>
> A good value would have 0xd7 in the first byte. The problem is that
> pmu_set_rtc_time is also broken, and leads to an invalid time value
> stored in the RTC. Since pmu_request is a varargs function passing
> values of type time64_t without casting won't work.
>
> You need to reset your RTC before you can continue.
Indeed that was silly, I was not paying attention. I'll try again tonight.
> I think the right fix is to change nowtime in pmu_set_rtc_time and
> cuda_set_rtc_time back to unsigned int (or to u32).
>
> Andreas.
>
> --
> Andreas Schwab, schwab@linux-m68k.org
> GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
> "And now for something completely different."
^ permalink raw reply
* Re: [PATCH] misc: ocxl: Change return type for fault handler
From: Souptick Joarder @ 2018-06-19 5:09 UTC (permalink / raw)
To: Frederic Barrat
Cc: Matthew Wilcox, fbarrat, Andrew Donnellan, Arnd Bergmann, Greg KH,
linuxppc-dev, linux-kernel, Sabyasachi Gupta, brajeswar.linux
In-Reply-To: <5c6942da-c847-c53a-a571-4ec96f2a993d@linux.ibm.com>
On Thu, Jun 14, 2018 at 9:36 PM, Frederic Barrat <fbarrat@linux.ibm.com> wr=
ote:
>
>
> Le 11/06/2018 =C3=A0 22:29, Souptick Joarder a =C3=A9crit :
>>
>> Use new return type vm_fault_t for fault handler. For
>> now, this is just documenting that the function returns
>> a VM_FAULT value rather than an errno. Once all instances
>> are converted, vm_fault_t will become a distinct type.
>>
>> Ref-> commit 1c8f422059ae ("mm: change return type to vm_fault_t")
>>
>> There is an existing bug when vm_insert_pfn() can return
>> ENOMEM which was ignored and VM_FAULT_NOPAGE returned as
>> default. The new inline vmf_insert_pfn() has removed
>> this inefficiency by returning correct vm_fault_ type.
>>
>> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
>> ---
>
>
> Thanks!
>
> Tested and
> Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
>
>
Frederic, is this patch queued for 4.19 ?
^ permalink raw reply
* [PATCH 3/3] powernv/cpuidle: Use parsed device tree values for cpuidle_init
From: Akshay Adiga @ 2018-06-19 5:04 UTC (permalink / raw)
To: linux-kernel, linuxppc-dev, linux-pm
Cc: rjw, svaidy, ego, npiggin, mpe, Akshay Adiga
In-Reply-To: <1529384668-27548-1-git-send-email-akshay.adiga@linux.vnet.ibm.com>
Export pnv_idle_states and nr_pnv_idle_states so that its accessible to
cpuidle driver. Use properties from pnv_idle_states structure for powernv
cpuidle_init.
Signed-off-by: Akshay Adiga <akshay.adiga@linux.vnet.ibm.com>
---
arch/powerpc/include/asm/cpuidle.h | 2 ++
drivers/cpuidle/cpuidle-powernv.c | 49 +++++++++++++++++++++++---------------
2 files changed, 32 insertions(+), 19 deletions(-)
diff --git a/arch/powerpc/include/asm/cpuidle.h b/arch/powerpc/include/asm/cpuidle.h
index 55ee7e3..1446747 100644
--- a/arch/powerpc/include/asm/cpuidle.h
+++ b/arch/powerpc/include/asm/cpuidle.h
@@ -93,6 +93,8 @@ struct pnv_idle_states_t {
u32 flags;
};
+extern struct pnv_idle_states_t *pnv_idle_states;
+extern int nr_pnv_idle_states;
extern u32 pnv_fastsleep_workaround_at_entry[];
extern u32 pnv_fastsleep_workaround_at_exit[];
diff --git a/drivers/cpuidle/cpuidle-powernv.c b/drivers/cpuidle/cpuidle-powernv.c
index d29e4f0..de8ba26 100644
--- a/drivers/cpuidle/cpuidle-powernv.c
+++ b/drivers/cpuidle/cpuidle-powernv.c
@@ -285,6 +285,11 @@ static int powernv_add_idle_states(void)
goto out;
}
+ if (nr_pnv_idle_states <= 0) {
+ pr_warn("opal: No idle states found\n");
+ goto out;
+ }
+
/* Read values of any property to determine the num of idle states */
dt_idle_states = of_property_count_u32_elems(power_mgt, "ibm,cpu-idle-state-flags");
if (dt_idle_states < 0) {
@@ -338,7 +343,7 @@ static int powernv_add_idle_states(void)
* If the idle states use stop instruction, probe for psscr values
* and psscr mask which are necessary to specify required stop level.
*/
- has_stop_states = (flags[0] &
+ has_stop_states = (pnv_idle_states[0].flags &
(OPAL_PM_STOP_INST_FAST | OPAL_PM_STOP_INST_DEEP));
if (has_stop_states) {
count = of_property_count_u64_elems(power_mgt,
@@ -387,51 +392,55 @@ static int powernv_add_idle_states(void)
residency_ns, dt_idle_states);
}
- for (i = 0; i < dt_idle_states; i++) {
+ for (i = 0; i < nr_pnv_idle_states; i++) {
unsigned int exit_latency, target_residency;
bool stops_timebase = false;
+ struct pnv_idle_states_t *state = &pnv_idle_states[i];
/*
* Skip the platform idle state whose flag isn't in
- * the supported_cpuidle_states flag mask.
+ * the supported_pnv_idle_states flag mask.
*/
- if ((flags[i] & supported_flags) != flags[i])
+ if ((state->flags & supported_flags) !=
+ state->flags)
continue;
/*
* If an idle state has exit latency beyond
* POWERNV_THRESHOLD_LATENCY_NS then don't use it
* in cpu-idle.
*/
- if (latency_ns[i] > POWERNV_THRESHOLD_LATENCY_NS)
+ if (state->latency_ns > POWERNV_THRESHOLD_LATENCY_NS)
continue;
/*
* Firmware passes residency and latency values in ns.
* cpuidle expects it in us.
*/
- exit_latency = DIV_ROUND_UP(latency_ns[i], 1000);
+ exit_latency = DIV_ROUND_UP(state->latency_ns, 1000);
if (!rc)
- target_residency = DIV_ROUND_UP(residency_ns[i], 1000);
+ target_residency = DIV_ROUND_UP(state->residency_ns, 1000);
else
target_residency = 0;
if (has_stop_states) {
- int err = validate_psscr_val_mask(&psscr_val[i],
- &psscr_mask[i],
- flags[i]);
+ int err;
+ err = validate_psscr_val_mask(&state->pm_ctrl_reg_val,
+ &state->pm_ctrl_reg_mask,
+ state->flags);
if (err) {
- report_invalid_psscr_val(psscr_val[i], err);
+ report_invalid_psscr_val(state->pm_ctrl_reg_val,
+ err);
continue;
}
}
- if (flags[i] & OPAL_PM_TIMEBASE_STOP)
+ if (state->flags & OPAL_PM_TIMEBASE_STOP)
stops_timebase = true;
/*
* For nap and fastsleep, use default target_residency
* values if f/w does not expose it.
*/
- if (flags[i] & OPAL_PM_NAP_ENABLED) {
+ if (state->flags & OPAL_PM_NAP_ENABLED) {
if (!rc)
target_residency = 100;
/* Add NAP state */
@@ -439,10 +448,11 @@ static int powernv_add_idle_states(void)
CPUIDLE_FLAG_NONE, nap_loop,
target_residency, exit_latency, 0, 0);
} else if (has_stop_states && !stops_timebase) {
- add_powernv_state(nr_idle_states, names[i],
+ add_powernv_state(nr_idle_states, state->name,
CPUIDLE_FLAG_NONE, stop_loop,
target_residency, exit_latency,
- psscr_val[i], psscr_mask[i]);
+ state->pm_ctrl_reg_val,
+ state->pm_ctrl_reg_mask);
}
/*
@@ -450,8 +460,8 @@ static int powernv_add_idle_states(void)
* within this config dependency check.
*/
#ifdef CONFIG_TICK_ONESHOT
- else if (flags[i] & OPAL_PM_SLEEP_ENABLED ||
- flags[i] & OPAL_PM_SLEEP_ENABLED_ER1) {
+ else if (state->flags & OPAL_PM_SLEEP_ENABLED ||
+ state->flags & OPAL_PM_SLEEP_ENABLED_ER1) {
if (!rc)
target_residency = 300000;
/* Add FASTSLEEP state */
@@ -460,10 +470,11 @@ static int powernv_add_idle_states(void)
fastsleep_loop,
target_residency, exit_latency, 0, 0);
} else if (has_stop_states && stops_timebase) {
- add_powernv_state(nr_idle_states, names[i],
+ add_powernv_state(nr_idle_states, state->name,
CPUIDLE_FLAG_TIMER_STOP, stop_loop,
target_residency, exit_latency,
- psscr_val[i], psscr_mask[i]);
+ state->pm_ctrl_reg_val,
+ state->pm_ctrl_reg_mask);
}
#endif
else
--
2.5.5
^ permalink raw reply related
* [PATCH 2/3] cpuidle/powernv: Change platform init to avoid reparsing dt
From: Akshay Adiga @ 2018-06-19 5:04 UTC (permalink / raw)
To: linux-kernel, linuxppc-dev, linux-pm
Cc: rjw, svaidy, ego, npiggin, mpe, Akshay Adiga
In-Reply-To: <1529384668-27548-1-git-send-email-akshay.adiga@linux.vnet.ibm.com>
The required data is accessible from cpuidle_states structure and
nr_cpu_idle_states. This patch makes changes to avoid reparsing and use
data from these structures.
Signed-off-by: Akshay Adiga <akshay.adiga@linux.vnet.ibm.com>
---
arch/powerpc/platforms/powernv/idle.c | 37 ++++++++---------------------------
1 file changed, 8 insertions(+), 29 deletions(-)
diff --git a/arch/powerpc/platforms/powernv/idle.c b/arch/powerpc/platforms/powernv/idle.c
index 07be984..0a62611 100644
--- a/arch/powerpc/platforms/powernv/idle.c
+++ b/arch/powerpc/platforms/powernv/idle.c
@@ -624,8 +624,7 @@ int validate_psscr_val_mask(u64 *psscr_val, u64 *psscr_mask, u32 flags)
* @dt_idle_states: Number of idle state entries
* Returns 0 on success
*/
-static int __init pnv_power9_idle_init(struct device_node *np, u32 *flags,
- int dt_idle_states)
+static int __init pnv_power9_idle_init(void)
{
u64 max_residency_ns = 0;
int i;
@@ -644,7 +643,7 @@ static int __init pnv_power9_idle_init(struct device_node *np, u32 *flags,
* the shallowest (OPAL_PM_STOP_INST_FAST) loss-less stop state.
*/
pnv_first_deep_stop_state = MAX_STOP_STATE;
- for (i = 0; i < dt_idle_states; i++) {
+ for (i = 0; i < nr_pnv_idle_states; i++) {
int err;
struct pnv_idle_states_t *state = &pnv_idle_states[i];
u64 psscr_rl = state->pm_ctrl_reg_val & PSSCR_RL_MASK;
@@ -704,41 +703,21 @@ static int __init pnv_power9_idle_init(struct device_node *np, u32 *flags,
*/
static void __init pnv_probe_idle_states(void)
{
- struct device_node *np;
- int dt_idle_states;
- u32 *flags = NULL;
int i;
- np = of_find_node_by_path("/ibm,opal/power-mgt");
- if (!np) {
- pr_warn("opal: PowerMgmt Node not found\n");
- goto out;
- }
- dt_idle_states = of_property_count_u32_elems(np,
- "ibm,cpu-idle-state-flags");
- if (dt_idle_states < 0) {
+ if (nr_pnv_idle_states < 0) {
pr_warn("cpuidle-powernv: no idle states found in the DT\n");
- goto out;
- }
-
- flags = kcalloc(dt_idle_states, sizeof(*flags), GFP_KERNEL);
-
- if (of_property_read_u32_array(np,
- "ibm,cpu-idle-state-flags", flags, dt_idle_states)) {
- pr_warn("cpuidle-powernv: missing ibm,cpu-idle-state-flags in DT\n");
- goto out;
+ return;
}
if (cpu_has_feature(CPU_FTR_ARCH_300)) {
- if (pnv_power9_idle_init(np, flags, dt_idle_states))
- goto out;
+ if (pnv_power9_idle_init())
+ return;
}
- for (i = 0; i < dt_idle_states; i++)
- supported_cpuidle_states |= flags[i];
+ for (i = 0; i < nr_pnv_idle_states; i++)
+ supported_cpuidle_states |= pnv_idle_states[i].flags;
-out:
- kfree(flags);
}
/*
--
2.5.5
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox