[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200618222834.GP76766@xz-x1>
Date: Thu, 18 Jun 2020 18:28:34 -0400
From: Peter Xu <peterx@...hat.com>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Guo Ren <guoren@...nel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Gerald Schaefer <gerald.schaefer@...ibm.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Andrea Arcangeli <aarcange@...hat.com>,
linux-csky@...r.kernel.org
Subject: Re: [PATCH 07/25] mm/csky: Use mm_fault_accounting()
On Thu, Jun 18, 2020 at 05:24:30PM -0400, Peter Xu wrote:
> > /* Major fault */
> > if ((ret & VM_FAULT_MAJOR) || (flags & FAULT_FLAG_TRIED)) {
> > flt = ¤t->maj_flt;
> > event_type = PERF_COUNT_SW_PAGE_FAULTS_MAJ;
> > } else {
> > flt = ¤t->min_flt;
> > event_type = PERF_COUNT_SW_PAGE_FAULTS_MIN;
> > }
> > *flt++;
> > if (regs)
> > perf_sw_event(event_type, 1, regs, address);
Sadly, this line seems to fail the compilation:
CC mm/memory.o
In file included from ././include/linux/compiler_types.h:68,
from <command-line>:
./arch/x86/include/asm/jump_label.h: In function ‘handle_mm_fault’:
./include/linux/compiler-gcc.h:120:38: warning: ‘asm’ operand 0 probably does not match constraints
120 | #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
| ^~~
./arch/x86/include/asm/jump_label.h:25:2: note: in expansion of macro ‘asm_volatile_goto’
25 | asm_volatile_goto("1:"
| ^~~~~~~~~~~~~~~~~
./include/linux/compiler-gcc.h:120:38: error: impossible constraint in ‘asm’
120 | #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
| ^~~
./arch/x86/include/asm/jump_label.h:25:2: note: in expansion of macro ‘asm_volatile_goto’
25 | asm_volatile_goto("1:"
| ^~~~~~~~~~~~~~~~~
make[1]: *** [scripts/Makefile.build:267: mm/memory.o] Error 1
make: *** [Makefile:1729: mm] Error 2
Frankly speaking I have no solid understanding on what's the error about... But
my gut feeling is that it's about the static keys, where perf_sw_event() may
only support static event types (otherwise we won't be able to know whether to
patch the instruction with no-op or a jump?).
I'll go back to the simple version for now, until I know a solution..
Thanks,
--
Peter Xu
Powered by blists - more mailing lists