On Thu, Jun 18, 2020 at 12:29:50PM -0700, Andy Lutomirski wrote:
>
> > On Jun 18, 2020, at 12:02 PM, Peter Zijlstra wrote:
> >
> > On Thu, Jun 18, 2020 at 11:36:53AM -0700, Andy Lutomirski wrote:
> >
> >> I wasn't imagining going far down the rabbit hole at all -- I think
> >> that, at most,
> >
> > trace_rcu_invoke_kfree_bulk_callback(
> > rcu_state.name, bkvhead[i]->nr_records,
> > bkvhead[i]->records);
> > if (i == 0)
> > kfree_bulk(bkvhead[i]->nr_records,
> > bkvhead[i]->records);
> > else
> >
Hello,
syzbot found the following crash on:
HEAD commit:b791d1bd Merge tag 'locking-kcsan-2020-06-11' of git://git..
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
usb-testing
console output: https://syzkaller.appspot.com/x/log.txt?x=13f305a910
kernel
Add the internal delay values into the header and update the binding
with the internal delay properties.
Signed-off-by: Dan Murphy
---
.../devicetree/bindings/net/ti,dp83869.yaml | 16 +++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git
Add RGMII internal delay configuration for Rx and Tx.
Signed-off-by: Dan Murphy
---
drivers/net/phy/dp83869.c | 53 ---
1 file changed, 50 insertions(+), 3 deletions(-)
diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c
index
The DP83822 can be configured to use the RGMII interface. There are
independent fixed 3.5ns clock shift (aka internal delay) for the TX and RX
paths. This allow either one to be set if the MII interface is RGMII and
the value is set in the firmware node.
Signed-off-by: Dan Murphy
---
tx-internal-delays and rx-internal-delays are a common setting for RGMII
capable devices.
These properties are used when the phy-mode or phy-controller is set to
rgmii-id, rgmii-rxid or rgmii-txid. These modes indicate to the
controller that the PHY will add the internal delay for the
Add a helper function that will return the index in the array for the
passed in internal delay value. The helper requires the array, size and
delay value.
The helper will then return the index for the exact match or return the
index for the index to the closest smaller value.
Signed-off-by: Dan
Error code is not included in the audit messages logged by
the integrity subsystem.
Define a new function integrity_audit_message() that takes error code
in the "errno" parameter. Add "errno" field in the audit messages logged
by the integrity subsystem and set the value passed in the "errno"
Hello
The RGMII internal delay is a common setting found in most RGMII capable PHY
devices. It was found that many vendor specific device tree properties exist
to do the same function. This creates a common property to be used for PHY's
that have internal delays for the Rx and Tx paths.
If the
process_buffer_measurement() and ima_alloc_key_entry() functions need to
log an audit message for auditing integrity measurement failures.
Add audit message in these two functions. Remove "pr_devel" log message
in process_buffer_measurement().
Sample audit messages:
[6.303048] audit:
On 6/18/20 2:02 PM, Daniel Gutson wrote:
> The intent of this patch is to provide visibility of the
> MKTME status to userspace. This is an important factor for
> firmware security related applilcations.
I think we need more specifics before considering adding a new ABI like
this. Could you
On Thu, 18 Jun 2020, Kees Cook wrote:
> On Thu, Jun 18, 2020 at 09:56:18PM +0200, Julia Lawall wrote:
> > @@
> > identifier i,fld;
> > expression e;
> > @@
> >
> > \(\(i\|e.fld\|e->fld\) \& E\)
> >
> > The e will match all of the variants you are concerned about.
>
> Ah, I see! Okay, that's
Rename
struct notifier_block *this
to
struct notifier_block *nb
"nb" is arguably a better name for notifier block.
Someone used "this" back in the days and everyone else copied.
In nearly 100% of cases it is unused with notable exception of
net/x25/af_ax25.c
Both gcc and g++
The nest attribute NBD_ATTR_DEVICE_LIST was not accounted for when
allocating the message, resulting in -EMSGSIZE.
As __alloc_skb aligns size requests to SMP_CACHE_BYTES and SLUB will end up
allocating more than requested, this can hardly be reproduced on most
setups.
However, I managed to test
-20200618 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-rc1-10-gc17b1b06-dirty
git checkout 9c29da3f4e7ef9810bdfaf3d8aa5e6d2e33136f8
# save the attached .config to linux build tree
make W=1
The nest attribute NBD_ATTR_DEVICE_LIST was not accounted for when
allocating the message, resulting in -EMSGSIZE.
As __alloc_skb aligns size requests to SMP_CACHE_BYTES and SLUB will end up
allocating more than requested, this can hardly be reproduced on most
setups.
However, I managed to test
From: Daniel Gutson
The intent of this patch is to provide visibility of the
MKTME status to userspace. This is an important factor for
firmware security related applilcations.
Signed-off-by: Daniel Gutson
---
MAINTAINERS | 5 +++
arch/x86/include/asm/cpu.h | 8
On Thu, Jun 18, 2020 at 1:00 PM Maciej Żenczykowski
wrote:
>
> From: Maciej Żenczykowski
>
> This is a 5.8-rc1 regression.
Please add full explanation here.
Also use [PATCH bpf] in the subject for future submission.
> Cc: Alexei Starovoitov
> Cc: Daniel Borkmann
> Fixes: 2c78ee898d8f ("bpf:
On Thu, Jun 18, 2020 at 04:39:35PM +, David Laight wrote:
> From: Alexey Dobriyan
> > Sent: 18 June 2020 14:17
> ...
> > > > diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
> > > > index fff28c6f73a2..b0dfac3d3df7 100644
> > > > --- a/arch/x86/lib/usercopy_64.c
> > > >
On 6/18/20 12:07 PM, Peter Zijlstra wrote:
On Thu, Jun 18, 2020 at 11:58:47AM -0400, Waiman Long wrote:
The current_gfp_context() converts a number of PF_MEMALLOC_* per-process
flags into the corresponding GFP_* flags for memory allocation. In
that function, current->flags is accessed 3 times.
Hi Rob.
On Thu, Jun 18, 2020 at 02:24:47PM -0600, Rob Herring wrote:
> Convert the analog TV, DVI, HDMI, and VGA connector bindings to DT schema
> format.
>
> Cc: Sam Ravnborg
> Cc: Laurent Pinchart
> Cc: Maxime Ripard
> Signed-off-by: Rob Herring
> ---
> I put myself as maintainer, but
Hello,
syzbot found the following crash on:
HEAD commit:b791d1bd Merge tag 'locking-kcsan-2020-06-11' of git://git..
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
usb-testing
console output: https://syzkaller.appspot.com/x/log.txt?x=1522cc2510
kernel
On 18.06.20 21:48, Linus Torvalds wrote:
> [ Explicitly added architecture lists and developers to the cc to make
> this more visible ]
>
> On Wed, Jun 17, 2020 at 12:38 AM Christoph Hellwig wrote:
>>
>> Andrew and I decided to drop the patches implementing your suggested
>> rename of the
On Thu, Jun 18, 2020 at 09:56:18PM +0200, Julia Lawall wrote:
> @@
> identifier i,fld;
> expression e;
> @@
>
> \(\(i\|e.fld\|e->fld\) \& E\)
>
> The e will match all of the variants you are concerned about.
Ah, I see! Okay, that's good. And the "& E" part is to effectively
collect it into E
Rather than walk the section tables using the old recordmcount mapping
of the ELF file, walk the section list provided by objtool's ELF code.
This removes the last use of of the Elf_r_sym wrapper so we remove
that too.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.c | 10 +---
On Thu, Jun 18, 2020 at 12:27:07PM +0300, Mike Rapoport wrote:
> Hi Roman,
>
> On Mon, Jun 08, 2020 at 04:06:35PM -0700, Roman Gushchin wrote:
> > This is v6 of the slab cgroup controller rework.
> >
> > The patchset moves the accounting from the page level to the object
> > level. It allows to
Use struct elf to grab the file descriptor. We will later
move these calls into other functions as we expand the
lifetime of the struct elf so that it can be passed to
objtool elf.[ch] functions.
This creates the libelf/objtool data structures and gives
us two separate ways to walk the ELF file
Rather than using indices into raw ELF32/64 tables mapped for the
wrapper, use the objtool functions to find the suitable symbol
in the given text section. This also removes all callers to
find_symtab() and get_symindex() so we can remove them as well.
Also take advantage of this commit to rename
The ELF data is now accessed completely through objtool's
ELF code. We can remove the mapping of the original ELF
file and propagate elf_open_read(), elf_close(), and malloc()
up in place of mmap_file(), mmap_cleanup(), and umalloc()
respectively. This also eliminates the last use of the
umalloc()
Rather than allocating the ELF sections after collecting the
mcount locations and building the relocation entries, create
the empty sections beforehand. This has the benefit of
removing the memcpy() and just using the resulting libelf
buffers directly.
Signed-off-by: Matt Helsley
---
Promote the now-bit-independent is_fake_mcount() out of the old
recordmcount ELF wrapper.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.c | 48 +++---
tools/objtool/recordmcount.h | 50
2 files changed, 45
Use a new loc_size parameter to append_func() rather than
use the wrapper's _size macro directly.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.h | 11 ++-
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/tools/objtool/recordmcount.h
Rather than a standalone executable merge recordmcount as a sub command
of objtool. This is a small step towards cleaning up recordmcount and
eventually sharing ELF code with objtool.
For the initial step all that's required is a bit of Makefile changes
and invoking the former main() function
Move recordmcount into the objtool directory. We keep this step separate
so changes which turn recordmcount into a subcommand of objtool don't
get obscured.
Signed-off-by: Matt Helsley
---
Documentation/trace/ftrace-design.rst | 4 ++--
Documentation/trace/ftrace.rst | 2 +-
Since it's no longer needed in the rest of do_func() we can move
it to where it's needed rather than pass it as a parameter.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/objtool/recordmcount.h
The mcount_adjust variable defines how many bytes to move back
from the relocation address in order to be able to get to the
start of the function call instruction(s) needed to turn it
into a no-op. The values are very small and signed so we don't
need to worry about changing the size of the
Use the ehdr parameter to append_func() to write the ELF file's
header but use the objtool ELF header data as the basis for
making changes. The makes it clearer when we can switch from
using the old recordmcount wrapper to write the ELF file
because ehdr will only be passed on to uwrite() calls
Setting altmcount only when processing ARM ELF files is
not necessary -- we can make the code easier to read
by always checking for the string.
Signed-off-by: Matt Helsley
---
tools/objtool/mcount.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/tools/objtool/mcount.c
Hi,
On Thu, Jun 18, 2020 at 04:19:02PM -0400, Ilia Mirkin wrote:
> Hi Boris,
>
> There was a fixup to that patch that you'll also have to revert first
> -- 7dbbdd37f2ae7dd4175ba3f86f4335c463b18403. I guess there's some
> subtle difference between the old open-coded logic and the helper,
> they
Rather than building the exact ELF section data we need and
avoiding libelf's conversion step, use more GElf types
and then libelf's elfxx_xlatetof() functions to convert
the mcount locations (GElf_Addr) and associated relocations.
This converts sift_rel_mcount() so that it doesn't use the
Hi David,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.8-rc1 next-20200618]
[cannot apply to kvmarm/next arm64/for-next/core arm-perf/for-next/perf]
[If your patch is applied to the wrong git tree, kindly drop us
Since the relocation section's sh_info points back to the text
section it applies to and we already have that we can just pass
it in and greatly simplify find_section_sym_index().
Signed-off-by: Matt Helsley
---
tools/objtool/mcount.c | 39 +++
1 file
Before we can move this function out of the wrapper and into
wordsize-independent code we need to return the relocation
symbol information in a size-independent fashion. Previously
we compared the raw info bits but that requires passing around
an unsigned long. Instead we just use a pointer to the
Rather than use the size of the relocations check the section
header type directly to see if the mcount relocations should
be rel or rela relocations.
Signed-off-by: Matt Helsley
---
tools/objtool/elf.c| 4 ++--
tools/objtool/elf.h| 2 +-
tools/objtool/mcount.c | 15 +--
3
In preparation for removing this first pass by mcount move
the test for whether a section is mcountable into objtool's
ELF read code, much like we did with the symbol name. A
subsequent patch will eliminate the tot_relsize() function
and thereby reduce the number of passes through the ELF
data.
Now that it's been stripped of using the old recordmcount ELF
wrapper get_mcountsym() is ready to be promoted out of the
double-included wrapper header.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.c | 16
tools/objtool/recordmcount.h | 19 ---
2
Rather than passing in the string table contents as a parameter,
pass in the section index of the string table and rely on libelf
string table accessor functions to look up section names.
Note that modifying the string table with libelf will come later
so append_func() is unchanged.
Remove gpfx -- the recognized prefix for the mcount symbol
-- and just recognize any of the prefixes. This allows us
to further substitute the various strings directly into the
code rather than using variables.
Signed-off-by: Matt Helsley
---
tools/objtool/mcount.c | 19 ---
1
The comments at the top no longer reflect how we process the ELF
contents. More helpful comments are inline with the code so we
don't need the top comments either.
Signed-off-by: Matt Helsley
---
tools/objtool/mcount.c | 13 -
1 file changed, 13 deletions(-)
diff --git
Now that they're no longer used we can remove these endian
wrappers.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.c | 63
1 file changed, 63 deletions(-)
diff --git a/tools/objtool/recordmcount.c b/tools/objtool/recordmcount.c
index
Move the check for relocations sections that apply to
mcountable text sections into objtool's ELF code.
Signed-off-by: Matt Helsley
---
tools/objtool/elf.c| 13 +
tools/objtool/elf.h| 2 +-
tools/objtool/mcount.c | 36
3 files changed,
Suggested-by: Peter Zijlstra
Signed-off-by: Matt Helsley
---
tools/objtool/check.c | 3 +--
tools/objtool/elf.c | 7 +++
tools/objtool/elf.h | 1 +
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index
Remove the last uses of the Elf_Rela wrapper by passing the
size of the relocations we're dealing with as a parameter.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.c | 4 ++--
tools/objtool/recordmcount.h | 7 ++-
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git
Move the test for mcount symbols into the ELF code itself
and set a class on indicator on the symbol. This simplifies
mcount a little and tests the symbols names near where they're
first touched so should be cache-hot and may also help us
reduce the number of passes through the ELF contents needed
We no longer need to double-include the recordmcount.h wrapper
All of the types and functions that rely on them have been converted
to using objtool's ELF code. This moves the remaining function to
recordmcount.c and changes the function name to something slightly
more descriptive while dropping
Let the compiler know we won't be modifying the instruction
patterns we use to determine how to turn ARM instruction(s)
into nops, and the nop instruction(s) we'll put in their
place.
Also, while we're at it, convert to unsigned char because the
next patch will need that as well.
Signed-off-by:
Now that we add an initially-empty relocation section and share
the libelf data buffer from the beginning, we can safely use
objtools elf_create_reloc_section() function to simplify the
code further -- use the anticipated base section name, avoid
the need to set sh_info, etc. The only remaining
Determine the size of the mcount relocations in objtool's
ELF reading code. This reduces the number of passes we make
through the list of sections (which can become large due to
things like -ffunction-sections).
Signed-off-by: Matt Helsley
---
tools/objtool/elf.c| 2 ++
tools/objtool/elf.h
The ELF header is the very first structure in an ELF file.
Rather than cast it from the file mapping we use the ELF
header extracted via objtool's ELF code.
This is the last usage of the open-coded mapping of the ELF
file which we will remove in a later step.
Signed-off-by: Matt Helsley
---
objtool's elf_write_insn() does extra checking when writing to
an instruction so use that rather than a plain memcpy().
Signed-off-by: Matt Helsley
---
tools/objtool/mcount.c | 10 --
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/tools/objtool/mcount.c
One flag is only for relocation sections and the other only
for text (not relocation) sections so we can share the same
flag and test the section type when we need to.
Signed-off-by: Matt Helsley
---
tools/objtool/elf.c| 5 ++---
tools/objtool/elf.h| 2 +-
tools/objtool/mcount.c | 9
Now that this function no longer uses any of the old recordmcount
wrapper code we can move it out of the wrapper too.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.c | 47 +
tools/objtool/recordmcount.h | 50
2
To reduce the need for an initial pass through the sections
we need to keep lists of mcount call locations and suitable
relocations. A subsequent patch will eliminate the need for
the first pass entirely.
Introduce a new list for the locations and reuse objtool's
relocation lists respectively.
Now that we've converted recordmcount to a subcommand of objtool
rename the .c file in order to follow the convention of the other
objtool subcmds.
Signed-off-by: Matt Helsley
---
tools/objtool/Build| 2 +-
tools/objtool/{recordmcount.c => mcount.c} | 0
2 files changed,
Instead of hard-coding what amounts to a memcmp() use memcmp to
determine if the instruction we wish to replace matches what we
expect. This makes the x86 code more like that of, for instance,
ARM.
Signed-off-by: Matt Helsley
---
tools/objtool/mcount.c | 19 ++-
1 file changed,
The name of the object file being processed is unused in
the wrapper's leaf functions so we no longer need to pass
it as a parameter.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.c | 4 ++--
tools/objtool/recordmcount.h | 19 ---
2 files changed, 10 insertions(+),
Rather than modify the pseudo-mapping of the ELF file directly,
which is the recordmcount way of operating, use the objtool
section list and generic ELF functions to modify the ELF file.
This eliminates a bunch of code -- the ulseek() and uwrite()
functions -- because it's used to patch the ELF
The has_rel_mcount() and tot_relsize() helpers are no longer
dependent on the ELF wrapper so we can move them.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.c | 26 ++
tools/objtool/recordmcount.h | 33 -
2 files changed, 26
The nop_mcount() function overwrites mcount calls that should be
ignored with no-ops. This operation varies by architecture and
wordsize so we retain the function pointers used to implement
the fundamental operation while nop_mcount() itself is responsible
for walking the relocations, determining
Replace MIPS is_fake_mcount code using Elf_Addr with
unsigned long for the offsets. This is consistent with the way
that objtool more generally treats offsets and removes the
last use of the Elf_Addr wrapper.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.h | 9 +++--
1 file
Move where we detect the size of relocation entries we wish to
use into the first loop over the sections. This will allow us
to allocate the mcount location and relocation sections before
the next loop that collects them.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.c | 8 +---
Since we're no longer writing to the ELF file mapping and we're
not appending to it we don't need to keep more information from the
stat structure. At the same time we can give the smaller global
variable a better name.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.c | 9 ++---
We can use the objtool GElf_Ehdr structure to access ehdr here.
This makes the function completely independent of the old
recordmcount ELF wrapper. The next step will be to promote it
to the C file.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.h | 13 ++---
1 file changed,
This function is no longer dependent upon the old recordmcount
ELF wrapper code -- it doesn't use the wrapper's Elf_* types nor
does it call wrapped functions. Move it into the C file.
Signed-off-by: Matt Helsley
---
tools/objtool/recordmcount.c | 42
Rather than open coding symbol name lookups in get_sym_and_*()
we rename the structure and use objtool's lookup function to
get the symbol name for a relocation. We also change the name
of the function to better reflect its purpose.
Signed-off-by: Matt Helsley
---
tools/objtool/elf.c |
recordmcount iterates over the sections in the order they're
listed in the ELF file and checks whether the section name
indicates it's of interest. Objtool's elf code works differently
-- it scans the elf file and builds up data structures
representing the headers, sections, etc. and then
Use objtool's ELF data structures to visit the relocation
sections in the top-level ELF file walking function, do_func().
This means we can pass pointers to the relocation header structures
into nested functions and avoid the indexing patterns for them.
These conversions don't use libelf/objtool
Currently the reasons to build and run objtool are:
Stack validation (objtool subcmds: orc + check)
Orc data generation (objtool subcmds: orc)
Code analysis (objtool subcmds: check)
Since the reasons are varied and the stack validation step is
skipped with a warning if
recordmcount has its own ELF wrapper code and could utilize
objtool's ELF code to more-portably handle architecture variations.
This series makes recordmcount a subcommand of objtool. It very
gradually converts recordmcount to become a subcommand of objtool and
then reuses parts of objtool's ELF
On Thu, Jun 18, 2020 at 10:35:57PM +0200, Uladzislau Rezki wrote:
> On Thu, Jun 18, 2020 at 12:03:59PM -0700, Paul E. McKenney wrote:
> but i do not have a strong opinion here, even though i tend to
> say that it would be odd. Having just vfree_bulk(), i think
> would be enough, as a result the
On Wed, Jun 17, 2020 at 01:01:51PM -0700, Matthew Wilcox wrote:
> On Wed, Jun 17, 2020 at 12:53:48PM -0700, Kees Cook wrote:
> > Include SLAB and SLOB caches when performing kmem_cache pointer
>
> ... SLOB? Really? Objects from different kmem caches are mixed together
> on the same page with
On Thu, 2020-06-18 at 13:29 -0700, Brendan Higgins wrote:
> On Wed, Jun 17, 2020 at 8:57 PM Vitor Massaru Iha
> wrote:
> > Commit 8b59cd81dc5 ("kbuild: ensure full rebuild when the compiler
> > is updated") added the environment variable CC_VERSION_TEXT,
> > parse_from_string() doesn't expect a
parent cannot be NULL here since its in the else part
of the if (parent == NULL) condition. Remove the extra
check on parent pointer.
Signed-off-by: Gaurav Singh
---
net/sched/sch_api.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/net/sched/sch_api.c
On Thu, Jun 18, 2020 at 12:03:59PM -0700, Paul E. McKenney wrote:
> On Thu, Jun 18, 2020 at 08:34:48PM +0200, Uladzislau Rezki wrote:
> > > > >
> > > > > I suspect that he would like to keep the tracing.
> > > > >
> > > > > It might be worth trying the branches, given that they would be
> > > >
On Thu, Jun 18, 2020 at 5:39 AM Vitor Massaru Iha wrote:
>
> Commit 8b59cd81dc5 ("kbuild: ensure full rebuild when the compiler
> is updated") added the environment variable CC_VERSION_TEXT,
> parse_from_string() doesn't expect a string in value field and this
> causes the failure below:
>
>
GP numbers start from -300 and gp_seq numbers start of -1200 (for a
shift of 2). These negative numbers are printed as unsigned long which
not only takes up more text space, but is rather confusing to the reader
as they have to constantly expend energy to truncate the number. Just
print the
This is useful to check for any improvements or degradation related to
number of GP kthread wakeups during testing.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/Kconfig.debug | 1 +
kernel/rcu/rcu.h | 2 ++
kernel/rcu/rcutorture.c | 23 ++-
The gp_seq value can come from either of rdp, rsp or rnp.
Only the rsp is the global source of truth (most accurate GP info). The
rnp can be off by ~1 and the rdp can be off by way more. Add some more
context to traces to clarify where it comes from.
Signed-off-by: Joel Fernandes (Google)
---
During acceleration of CB, the rsp's gp_seq is rcu_seq_snap'd. This is
the value used for acceleration - it is the value of gp_seq at which it
is safe the execute all callbacks in the callback list.
The rdp's gp_seq is not very useful for this scenario. Make
rcu_grace_period report the rsp's
Track how the segcb list changes before/after acceleration, during
queuing and during dequeuing.
This has proved useful to discover an optimization to avoid unwanted GP
requests when there are no callbacks accelerated.
Signed-off-by: Joel Fernandes (Google)
---
include/trace/events/rcu.h | 25
Add 2 things to get visiblity around number of grace periods.
1. Add number of GPs to End-state print.
2. Just like End-state, add GP state to Start-state.
This helps determine how many GPs elapsed during a run of rcutorture and
what the initial state was.
Signed-off-by: Joel Fernandes (Google)
rcu_segcblist_accelerate() returns true if a GP is to be
started/requested and false if not. During tracing, I found that it is
asking that GPs be requested
The exact flow seems to be something like:
1. Callbacks are queued on CPU A - into the NEXT list.
2. softirq runs on CPU A, accelerate all
On Wed, Jun 17, 2020 at 8:57 PM Vitor Massaru Iha wrote:
>
> Commit 8b59cd81dc5 ("kbuild: ensure full rebuild when the compiler
> is updated") added the environment variable CC_VERSION_TEXT,
> parse_from_string() doesn't expect a string and this causes the
> failure below:
>
> [iha@bbking linux]$
On Thu, Jun 18, 2020 at 1:22 PM Nick Desaulniers
wrote:
>
> On Tue, Jun 16, 2020 at 3:36 PM 'Nathan Huckleberry' via Clang Built
> Linux wrote:
> >
> > Since clang does not push pc and sp in function prologues, the current
> > implementation of unwind_frame does not work. By using the previous
>
On Tue, Jun 16, 2020 at 9:21 PM David Gow wrote:
>
> On Tue, Jun 16, 2020 at 5:40 PM Alan Maguire wrote:
> >
> > On Tue, 16 Jun 2020, David Gow wrote:
> >
> > > CONFIG_PM_QOS_KUNIT_TESTOn Mon, Jun 15, 2020 at 1:48 AM Kees Cook
> > > wrote:
> > > >
> > > > On Sat, Jun 13, 2020 at 02:51:17PM
Convert the analog TV, DVI, HDMI, and VGA connector bindings to DT schema
format.
Cc: Sam Ravnborg
Cc: Laurent Pinchart
Cc: Maxime Ripard
Signed-off-by: Rob Herring
---
I put myself as maintainer, but would be happy if someone else was like
one of the Cc'ed people.
On Tue, Jun 16, 2020 at 3:36 PM 'Nathan Huckleberry' via Clang Built
Linux wrote:
>
> Since clang does not push pc and sp in function prologues, the current
> implementation of unwind_frame does not work. By using the previous
> frame's lr/fp instead of saved pc/sp we get valid unwinds on
Hi Boris,
There was a fixup to that patch that you'll also have to revert first
-- 7dbbdd37f2ae7dd4175ba3f86f4335c463b18403. I guess there's some
subtle difference between the old open-coded logic and the helper,
they were supposed to be identical.
Cheers,
-ilia
On Thu, Jun 18, 2020 at 4:09
> On Jun 18, 2020, at 11:33 AM, Peter Zijlstra wrote:
>
> On Thu, Jun 18, 2020 at 05:25:24PM +, Song Liu wrote:
>
[...]
>> 0xfe4d1380 __start_orc_unwind
>> 0xfe4d1388 unwind_next_frame.cold.7
>> 0xfe4d13c8 perf_callchain_kernel
>> 0xfe4d1418
301 - 400 of 1319 matches
Mail list logo