Pass the softirq vector number to lockdep on callback execution so that
we know which one is involved while holding a lock. We will then be able
to pick up the proper LOCK_USED_IN_*_SOFTIRQ index to perform the
finegrained verifications.
Signed-off-by: Frederic Weisbecker
Cc: Mauro Carvalho
mark_lock_irq() is going to deal with lock usages that gather multiple
softirq vectors at once. Therefore the validation through
check_usage_backwards() and check_usage_forwards() will need to handle
expanded usage masks.
So enhance those functions to that purpose.
Signed-off-by: Frederic
For those who missed the infinitely invasive and carpal tunnel
unfriendly v1: https://lwn.net/Articles/768157/
Softirqs masking is an all or nothing operation. It's currently not
possible to disable a single vector. Yet some workloads are interested
in deterministic latencies for vectors
Now that we have full support from softirqs to perform per vector
masking, let's feed lockdep with the proper inputs and push the vector
numbers involved in a base softirq lock usage:
LOCK_ENABLED_SOFTIRQ: push local_softirq_enabled()
LOCK_USED_IN_SOFTIRQ: push curr->softirq_context, modified by
It allows us to extend the coverage of vector finegrained masking
throughout softirq safe locking. This is especially interesting with
networking that makes extensive use of it.
It works the same way as local_bh_disable_mask():
bh = spin_lock_bh_mask(lock, BIT(NET_RX_SOFTIRQ));
[...]
The bottom half masking APIs have become interestingly confusing with all
these flavours:
local_bh_enable()
_local_bh_enable()
local_bh_enable_ip()
__local_bh_enable_ip()
_local_bh_enable() is an exception here because it's the only
From: Frederic Weisbecker
Using the bottom-half masking APIs defined in linux/bottom-half.h won't
be possible without passing the relevant softirq vectors that are
currently defined in linux/interrupt.h
Yet we can't include linux/interrupt.h from linux/bottom-half.h due to
circular
Provide the low level APIs to support per-vector masking. In order
to allow these to properly nest with itself and with full softirq
masking APIs, we provide two mechanisms:
1) Self nesting: use a caller stack saved/restored state model similar to
that of local_irq_save() and
From: Frederic Weisbecker
All softirqs must be set enabled on boot.
Signed-off-by: Frederic Weisbecker
Cc: Mauro Carvalho Chehab
Cc: Joel Fernandes
Cc: Thomas Gleixner
Cc: Pavan Kondeti
Cc: Paul E . McKenney
Cc: David S . Miller
Cc: Ingo Molnar
Cc: Sebastian Andrzej Siewior
Cc: Linus
In order to be able to mix and nest full and per vector softirq masking,
we need to be able to track the nesting state using a "full masking"
counter and a mask of "individual disabled vectors".
Start with introducing the full masking counter. For now it's a simple
mirror of softirq_count()
There is no need to process softirqs if none of those pending are
enabled. Check about that early to avoid unnecessary overhead.
Signed-off-by: Frederic Weisbecker
Cc: Mauro Carvalho Chehab
Cc: Joel Fernandes
Cc: Thomas Gleixner
Cc: Pavan Kondeti
Cc: Paul E . McKenney
Cc: David S . Miller
The common code between both versions of __local_bh_disable_ip(), whether
CONFIG_TRACE_IRQFLAGS is on or off, is going to grow up in order to
support vector masking granularity.
Merge these versions together to prepare for that.
Signed-off-by: Frederic Weisbecker
Cc: Mauro Carvalho Chehab
Cc:
Remove the old protections that prevented softirqs from interrupting any
softirq-disabled context. Now that we can disable specific vectors on
a given piece of code, we want to be able to soft-interrupt those places
with other vectors.
Signed-off-by: Frederic Weisbecker
Cc: Mauro Carvalho Chehab
Expand the effective usage bit on top of the lock usage bit/vector pair
while in verbose mode logging in mark_lock().
FIXME: This only handle the first bit in the mask. We may need to
iterate over all of them.
Signed-off-by: Frederic Weisbecker
Cc: Mauro Carvalho Chehab
Cc: Joel Fernandes
Cc:
Loosely handle all the softirq vectors verbosity under the same
function.
Signed-off-by: Frederic Weisbecker
Cc: Mauro Carvalho Chehab
Cc: Joel Fernandes
Cc: Thomas Gleixner
Cc: Pavan Kondeti
Cc: Paul E . McKenney
Cc: David S . Miller
Cc: Ingo Molnar
Cc: Sebastian Andrzej Siewior
Cc:
current->softirqs_enabled used to mean that either all or no softirqs
are enabled. Now things are getting a bit different with the new per
vector masking extension after which current->softirqs_enabled will
stay on as long as there is a single vector still enabled.
Let's adapt the check to the
On Tue, Feb 12, 2019 at 6:30 AM John Ogness wrote:
>
> + while (atomic_long_read(>lost)) {
> + atomic_long_dec(>lost);
> + rb->seq++;
> + }
This looks like crazy garbage. It's neither atomic
Making the auxtrace_buffer fetch function modular so that it can be called
from different decoding context (timeless vs. non-timeless), avoiding to
repeat code.
No change in functionality is introduced by this patch.
Signed-off-by: Mathieu Poirier
---
tools/perf/util/cs-etm.c | 41
This is a usage example of spin_lock_bh_mask(). NET_RX, TIMER and
TASKLET are the three softirqs that have been reported by lockdep to
be used for this socket lock, at least on my own usecases.
Signed-off-by: Frederic Weisbecker
Cc: Mauro Carvalho Chehab
Cc: Joel Fernandes
Cc: Thomas Gleixner
Moving initialisation of the kernel start address to function
cs_etm__setup_queues(), considered to be the common denominator for
queue initialisation. That way we don't have to repeat the same code
at different places.
No change of functionatlity is introduced by this patch.
Signed-off-by:
Making the main decoder block modular so that it can be called from
different decoding context (timeless vs. non-timeless), avoiding
to repeat code.
No change in functionality is introduced by this patch.
Signed-off-by: Mathieu Poirier
---
tools/perf/util/cs-etm.c | 41
Field "time" and "timestamp" in structure cs_etm_queue are no longer used
and need to be removed.
Signed-off-by: Mathieu Poirier
---
tools/perf/util/cs-etm.c | 12
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c
This patch makes decoding of auxtrace buffer centered around a struct
cs_etm_queue. This eliminates surperflous variables and is a precursor
for work that simplifies the main decoder loop.
Signed-off-by: Mathieu Poirier
---
.../perf/util/cs-etm-decoder/cs-etm-decoder.h | 7 ---
Good day Arnaldo,
The only reason I'm sending this set so late in the cycle is that it does
absolutely nothing other than cleaning up and refactoring code - not a
single new feature is added here.
As such if my colleagues on CoreSight get to review it fast enough I leave
it entirely to you to
Function cs_etm__alloc_queue() should only be concerned with the allocation
of memory for the etmq and accompanying decoder. Everything else should
be done in the calling function.
Signed-off-by: Mathieu Poirier
---
tools/perf/util/cs-etm.c | 37 -
1 file
Memory allocated for variable 't_params' isn't released properly in the
error path of function cs_etm_queue *cs_etm__alloc_queue() and
cs_etm__dump_event(), something this patch addresses.
Signed-off-by: Mathieu Poirier
---
tools/perf/util/cs-etm.c | 20 +---
1 file changed, 13
The comment just before initialising the decoder is plane wrong since it
is part of the decoding queue setup function and the operation code
specifically mention that trace data is to be decoded rather than printed
out.
This patch simply fix the comment to prevent people from getting really
Function cs_etm__mem_access() is supposed to return a u32 but the error
path returns negative values at a couple of places, something that really
throws off the clients using it. Fix the situation by return '0'.
Signed-off-by: Mathieu Poirier
---
tools/perf/util/cs-etm.c | 4 ++--
1 file
From: Domenico Andreoli
It is unlikely that who contributes to this file is unaware of the kernel
licensing but bringing the license statement into the file itself makes
it properly reusable in different contexts.
CC: Daniel Borkmann
CC: Francesco Fusco
CC: George Spelvin
CC: Hannes Frederic
Making the main packet processing loop modular so that it can be called
from different decoding context (timeless vs. non-timless), avoiding to
repeat code.
Signed-off-by: Mathieu Poirier
---
tools/perf/util/cs-etm.c | 129 ++-
1 file changed, 72
Introducing function cs_etm_decoder__init_dparams() to avoid repeating
code at two different places.
Signed-off-by: Mathieu Poirier
---
.../perf/util/cs-etm-decoder/cs-etm-decoder.h | 3 +-
tools/perf/util/cs-etm.c | 41 +--
2 files changed, 30
The trace parameter initialisation code is repeated in two different
places, something that bloats the file and can lead to errors. This
is fixed by introducing a helper function and calling the right
protocol initialisation code when required.
Signed-off-by: Mathieu Poirier
---
This reverts commit 9aee5f8a7e30330d0a8f4c626dc924ca5590aba5.
We are going to need the 16 high bits above in order to implement
a softirq enable mask. x86 is the only architecture that doesn't use
unsigned int to implement softirq_pending.
Signed-off-by: Frederic Weisbecker
Cc: Mauro Carvalho
Field "state" in structure cs_etm_queue is no longer used and needs
to be removed.
Signed-off-by: Mathieu Poirier
---
tools/perf/util/cs-etm.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c
index 0b11d653cfbe..ebd68eb43da9 100644
---
It makes no more sense to check for redundant softirqs on because
trace_softirqs_on() is no more symmetrical to trace_softirqs_off().
Indeed trace_softirqs_off() is called whenever we know that all softirq
vectors have been disabled. And trace_softirqs_on() is called everytime
we enable at least
__local_bh_disable_ip() is neither for strict internal use nor does it
require the caller to disable hardirqs. Probaby a celebration for ancient
behaviour.
Signed-off-by: Frederic Weisbecker
Cc: Mauro Carvalho Chehab
Cc: Joel Fernandes
Cc: Thomas Gleixner
Cc: Pavan Kondeti
Cc: Paul E .
On Tue, Feb 12, 2019 at 04:50:11PM +, Christopher Lameter wrote:
> On Tue, 12 Feb 2019, Alexey Kardashevskiy wrote:
>
> > Now it is 3 independent accesses (actually 4 but the last one is
> > diagnostic) with no locking around them. Why do not we need a lock
> > anymore precisely? Thanks,
>
>
On 2/8/19 2:55 AM, Alexey Brodkin wrote:
> By default ARCH_SLAB_MINALIGN is defined in "include/linux/slab.h" as
> "__alignof__(unsigned long long)" which looks fine but not for ARC.
Just for the record, the issue happens because a LLOCKD (exclusive 64-bit load)
was trying to use a 32-bit aligned
On Tue, 2019-02-12 at 10:09 +0800, Aaron Lu wrote:
> On 2019/2/11 23:58, Alexander Duyck wrote:
> > On Mon, 2019-02-11 at 14:40 +0800, Aaron Lu wrote:
> > > On 2019/2/5 2:15, Alexander Duyck wrote:
> > > > From: Alexander Duyck
> > > >
> > > > Because the implementation was limiting itself to
On 02/11, Eric W. Biederman wrote:
>
> Oleg Nesterov writes:
>
> >> + /*
> >> + * Check if there is another siginfo for the same signal.
> >> + */
> >> + list_for_each_entry_continue(q, >list, list) {
> >> + if (q->info.si_signo == sync->info.si_signo)
> >> + goto
On 2/12/19 4:24 AM, David Hildenbrand wrote:
> On 12.02.19 10:03, Wang, Wei W wrote:
>> On Tuesday, February 5, 2019 4:19 AM, Nitesh Narayan Lal wrote:
>>> The following patch-set proposes an efficient mechanism for handing freed
>>> memory between the guest and the host. It enables the guests
On Thu, Feb 07, 2019 at 17:38 Hedi Berriche wrote:
On Thu, Feb 07, 2019 at 16:05 Ard Biesheuvel wrote:
On Thu, 7 Feb 2019 at 05:23, Hedi Berriche wrote:
Make efi_runtime_lock semaphore global so that it can be used by EFI
runtime callers that may be defined outside efi/runtime-wrappers.c.
On Tue, 12 Feb 2019 at 18:25, Hedi Berriche wrote:
>
> On Thu, Feb 07, 2019 at 17:38 Hedi Berriche wrote:
> >On Thu, Feb 07, 2019 at 16:05 Ard Biesheuvel wrote:
> >>On Thu, 7 Feb 2019 at 05:23, Hedi Berriche wrote:
> >>>
> >>>Make efi_runtime_lock semaphore global so that it can be used by EFI
>
On Mon, Feb 11, 2019 at 01:04:59PM +, Peng Fan wrote:
> arm_memory_present is doing same thing as memblocks_present, so
> let's use common code memblocks_present instead of platform
> specific arm_memory_present.
>
> Signed-off-by: Peng Fan
Looks good, please put it in the patch system,
On Tue, 2019-02-12 at 16:45 +, Vineet Gupta wrote:
> On 2/12/19 7:39 AM, Eugeniy Paltsev wrote:
> > Handle U-boot arguments paranoidly:
> > * don't allow to pass unknown tag.
> > * try to use external device tree blob only if corresponding tag
> >(TAG_DTB) is set.
> > * check that magic
From: Vineet Gupta
> Sent: 12 February 2019 17:17
>
> On 2/8/19 2:55 AM, Alexey Brodkin wrote:
> > By default ARCH_SLAB_MINALIGN is defined in "include/linux/slab.h" as
> > "__alignof__(unsigned long long)" which looks fine but not for ARC.
>
> Just for the record, the issue happens because a
On Tue, Feb 12, 2019 at 08:49:03AM +, Jonathan Cameron wrote:
> On Mon, 11 Feb 2019 08:23:04 -0700
> Keith Busch wrote:
>
> > On Sun, Feb 10, 2019 at 09:19:58AM -0800, Jonathan Cameron wrote:
> > > On Sat, 9 Feb 2019 09:20:53 +0100
> > > Brice Goglin wrote:
> > >
> > > > Hello Keith
> >
On 2/12/19 9:25 AM, Eugeniy Paltsev wrote:
>> This is technically changing the ABI - I think we don't need to enforce this
>> -
>> keep ignoring this
> I think it's better to add this check:
> * This check doesn't break backward compatibility. ARC U-boot pass zero to r1
>from the beginnings,
On Tue, Feb 12, 2019 at 9:14 AM Frederic Weisbecker wrote:
>
> In order to perform softirq vector-finegrained locking validation we'll
> need to be able to check multiple vector usages at once. Prepare the low
> level usage mask check functions for that purpose.
Why is this using "u64 mask"?
On 2/12/19 4:00 AM, Thomas Gleixner wrote:
> Tim,
>
> On Wed, 30 Jan 2019, Thomas Gleixner wrote:
>> Also please follow the L1TF documentation which explains for each of the
>> mitigation modes which kind of attacks are prevented and which holes
>> remain.
>>
>> It's a good start but far from
On Tue, Feb 12, 2019 at 9:14 AM Frederic Weisbecker wrote:
>
> +static u64 lock_usage_mask(struct lock_usage *usage)
> +{
> + return BIT(usage->bit);
> +}
More insane "u64" - and it's *incorrect* too.
#define BIT(nr)(1UL << (nr))
fundamentally means that "BIT()"
In preparation to enabling -Wimplicit-fallthrough, mark switch
cases where we are expecting to fall through.
This patch fixes the following warnings by adding a missing break
and a fall-through annotation:
drivers/nfc/st21nfca/dep.c: In function ‘st21nfca_tm_event_send_data’:
Dne torek, 12. februar 2019 ob 13:47:13 CET je Maxime Ripard napisal(a):
> On Mon, Feb 11, 2019 at 04:48:17PM -0300, Ezequiel Garcia wrote:
> > On Mon, 2019-02-11 at 15:39 +0100, Maxime Ripard wrote:
> > > Introduce some basic H264 decoding support in cedrus. So far, only the
> > > baseline
Hello,
Christoph Hellwig wrote:
> The DMA API generally relies on a struct device to work properly, and
> only barely works without one for legacy reasons. Pass the easily
> available struct device from the platform_device to remedy this.
>
> Also use GFP_KERNEL instead of GFP_ATOMIC as the
On 2/12/19 2:17 AM, Philipp Zabel wrote:
Hi Steve,
On Mon, 2019-02-11 at 10:24 -0800, Steve Longerbeam wrote:
[...]
Looking more closely at these coefficients now, I see you are right,
they are the BT.601 YUV full-range coefficients (Y range 0 to 1, U and V
range -0.5 to 0.5). Well, not
In preparation to enabling -Wimplicit-fallthrough, mark switch
cases where we are expecting to fall through.
This patch fixes the following warning:
drivers/parport/ieee1284.c: In function ‘parport_read’:
drivers/parport/ieee1284.c:722:6: warning: this statement may fall through
Exynos4412 should use "samsung,exynos4212-adc" compatible to report
proper number of (four) channels.
Signed-off-by: Krzysztof Kozlowski
---
arch/arm/boot/dts/exynos4412.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/exynos4412.dtsi
Hi,
The DTS patch depends on iio change. I will take it through samsung-soc
for consecutive release, once iio/adc gets accepted.
Best regards,
Krzysztof
Krzysztof Kozlowski (2):
iio: adc: exynos-adc: Use proper number of channels for Exynos4x12
ARM: dts: exynos: Use ADC for Exynos4x12 on
Exynos4212 and Exynos4412 have only four ADC channels so using
"samsung,exynos-adc-v1" compatible (for eight channels ADCv1) on them is
wrong. Add a new compatible for Exynos4x12.
Signed-off-by: Krzysztof Kozlowski
---
.../bindings/iio/adc/samsung,exynos-adc.txt | 4 +++-
On Tue, Feb 12, 2019 at 9:14 AM Frederic Weisbecker wrote:
>
> +
> + while (vectors) {
> + long fs = __ffs64(vectors) + 1;
> +
> + vectors >>= fs;
This is wrong.
If "vectors" only has the high hit set, you end up with "fs" having
the value "64".
And then
Add ADC node to Odroid U3 with its regulator, purely for documentation
purposes. The ADC stays disabled because it is not used (all inputs
grounded).
Signed-off-by: Krzysztof Kozlowski
---
arch/arm/boot/dts/exynos4412-odroidu3.dts | 5 +
1 file changed, 5 insertions(+)
diff --git
Dne torek, 12. februar 2019 ob 11:43:14 CET je Maxime Ripard napisal(a):
> Hi,
>
> On Mon, Feb 11, 2019 at 08:21:31PM +0100, Jernej Škrabec wrote:
> > > + reg = 0;
> > > + /*
> > > + * FIXME: This bit tells the video engine to use the default
> > > + * quantization matrices. This will obviously
+CC some folks interested in alignment stuff in the past.
On 2/12/19 9:30 AM, David Laight wrote:
> From: Vineet Gupta
>> Sent: 12 February 2019 17:17
>>
>> On 2/8/19 2:55 AM, Alexey Brodkin wrote:
>>> By default ARCH_SLAB_MINALIGN is defined in "include/linux/slab.h" as
>>>
On Tue, Feb 12, 2019 at 9:15 AM Frederic Weisbecker wrote:
>
>
> +static int save_trace_mask(struct lock_class *class, u64 mask)
> +{
> + int bit = 0;
> +
> + while (mask) {
> + long fs = __ffs64(mask) + 1;
> +
> + mask >>= fs;
> + bit += fs;
On Tue, Feb 12, 2019 at 9:14 AM Frederic Weisbecker wrote:
>
> The usage mask is going to expand to validate softirq related usages in
> a per-vector finegrained way.
So here you start explaining why you wanted that u64. Much too late,
considering that you already changed to u64 earlier.
On Wed, Feb 06, 2019 at 04:17:26PM +0300, Mika Westerberg wrote:
> /* dword 0 */
> hop.next_hop = path->hops[i].next_hop_index;
> hop.out_port = path->hops[i].out_port->port;
> - /* TODO: figure out why these are good values */
> -
On Mon, Feb 11, 2019 at 05:20:20PM +0100, Ulf Hansson wrote:
> On Thu, 7 Feb 2019 at 16:29, Sudeep Holla wrote:
> >
> > On Thu, Feb 07, 2019 at 04:18:57PM +0100, Ulf Hansson wrote:
> > > On Thu, 7 Feb 2019 at 16:06, Sudeep Holla wrote:
> >
> > [...]
> >
> > > > Indeed, I was ignoring knowing
From: Florian Fainelli
Date: Mon, 11 Feb 2019 13:17:46 -0800
> AFAICT there is no code that attempts to get the value of the attribute
> SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS while it is used with
> switchdev_port_attr_set().
>
> This is effectively no doing anything and it can slow down future
On 2/12/19 3:34 AM, Philipp Zabel wrote:
Hi Steve,
On Mon, 2019-02-11 at 17:20 -0800, Steve Longerbeam wrote:
[...]
Should we support YUV BT.601 <-> YUV REC.709 conversions? That would
require separate encodings for input and output.
How about if we pass the input and output encodings to
Move the ADC from exynos5420.dtsi to a shared file between Exynos5410 and
Exynos542x: exynos54xx.dtsi. Enable the ADC on Odroid XU board.
Signed-off-by: Krzysztof Kozlowski
---
arch/arm/boot/dts/exynos5410-odroidxu.dts | 5 +
arch/arm/boot/dts/exynos5410.dtsi | 6 ++
Hi,
The DTS patch depends on bindings header with clock ID. I will take it
through samsung-soc for consecutive release.
Best regards,
Krzysztof
Krzysztof Kozlowski (4):
dt-bindings: clock: exynos: Put CLK_UART3 in order
dt-bindings: clock: exynos: Add ADC clock ID to Exynos5410
clk:
Order the CLK_UART3 by ID. No change in functionality.
Signed-off-by: Krzysztof Kozlowski
---
include/dt-bindings/clock/exynos5410.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/dt-bindings/clock/exynos5410.h
b/include/dt-bindings/clock/exynos5410.h
index
Add the gate clock for ADC block on Exynos5410.
Signed-off-by: Krzysztof Kozlowski
---
drivers/clk/samsung/clk-exynos5410.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/clk/samsung/clk-exynos5410.c
b/drivers/clk/samsung/clk-exynos5410.c
index 0a0b09591e6f..b2da2c8fa0c7 100644
Add ID for TSADC clock to Exynos5410. Choose the same value of ID as in
Exynos5420 to make it simpler/compatible in future (although clock
driver code is not shared).
Signed-off-by: Krzysztof Kozlowski
---
include/dt-bindings/clock/exynos5410.h | 1 +
1 file changed, 1 insertion(+)
diff --git
> From: Peter Zijlstra [mailto:pet...@infradead.org]
> On Tue, Feb 12, 2019 at 02:51:00PM +0100, Thomas Gleixner wrote:
> > On Tue, 12 Feb 2019, Peter Zijlstra wrote:
> >
> > > On Mon, Feb 11, 2019 at 11:16:43AM -0800, Fenghua Yu wrote:
> > > > 4. The feature can be disabled by kernel option
> > >
On Mon, Jan 28, 2019 at 4:12 PM Alexander Popov wrote:
>
> On 23.01.2019 14:03, Kees Cook wrote:
> > This adds a new plugin "stackinit" that attempts to perform unconditional
> > initialization of all stack variables
>
> Hello Kees! Hello everyone!
>
> I was curious about the performance impact
On 2/12/19 9:50 AM, David Miller wrote:
> From: Florian Fainelli
> Date: Mon, 11 Feb 2019 13:17:46 -0800
>
>> AFAICT there is no code that attempts to get the value of the attribute
>> SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS while it is used with
>> switchdev_port_attr_set().
>>
>> This is
From: Brian Norris
Date: Mon, 11 Feb 2019 13:02:25 -0800
> There are several skb_* functions where the locked and unlocked
> functions are confusingly documented. For several of them, the
> kernel-doc for the unlocked version is placed above the locked version,
> which to the casual reader makes
Vmalloc() is getting more and more used these days (kernel stacks,
bpf and percpu allocator are new top users), and the total %
of memory consumed by vmalloc() can be pretty significant
and changes dynamically.
/proc/meminfo is the best place to display this information:
its top goal is to show
The patchset contains few changes to the vmalloc code, which are
leading to some performance gains and code simplification.
Also, it exports a number of pages, used by vmalloc(),
in /proc/meminfo.
Patch (1) removes some redundancy on __vunmap().
Patch (2) separates memory allocation and data
alloc_vmap_area() is allocating memory for the vmap_area, and
performing the actual lookup of the vm area and vmap_area
initialization.
This prevents us from using a pre-allocated memory for the map_area
structure, which can be used in some cases to minimize the number
of required memory
__vunmap() calls find_vm_area() twice without an obvious reason:
first directly to get the area pointer, second indirectly by calling
remove_vm_area(), which is again searching for the area.
To remove this redundancy, let's split remove_vm_area() into
__remove_vm_area(struct vmap_area *), which
On 2/11/19 10:47 PM, Huang, Ying wrote:
> Andrea Parri writes:
>
+ if (!si)
+ goto bad_nofile;
+
+ preempt_disable();
+ if (!(si->flags & SWP_VALID))
+ goto unlock_out;
>>>
>>> After Hugh alluded to barriers, it seems the read of SWP_VALID could
On Tue, 2019-02-12 at 14:00 +0100, Petr Mladek wrote:
> On Fri 2019-02-08 09:11:17, Joe Perches wrote:
> > On Fri, 2019-02-08 at 16:23 +0100, Petr Mladek wrote:
> > > Move the code from the long pointer() function. We are going to improve
> > > error handling that will make it more complicated.
>
On Tue, Feb 12, 2019 at 6:16 AM Paolo Bonzini wrote:
>
> On 07/02/19 22:17, Jim Mattson wrote:
> >> SDM says MSR_IA32_VMX_PROCBASED_CTLS2 is only available "If
> >> (CPUID.01H:ECX.[5] && IA32_VMX_PROCBASED_CTLS[63])". It was found that
> >> some old cpus (namely "Intel(R) Core(TM)2 CPU 6600 @
On Mon, Feb 11, 2019 at 12:32:55PM -0800, Evgenii Stepanov wrote:
> On Mon, Feb 11, 2019 at 9:28 AM Kevin Brodsky wrote:
> > On 19/12/2018 12:52, Dave Martin wrote:
> > > Really, the kernel should do the expected thing with all "non-weird"
> > > memory.
> > >
> > > In lieu of a proper definition
On 2/9/19 2:42 AM, Johan Hovold wrote:
On Fri, Feb 08, 2019 at 04:06:09PM -0700, Shuah Khan wrote:
tty_set_termios() has the following WARN_ON which can be triggered with a
syscall to invoke TIOCSETD __NR_ioctl.
WARN_ON(tty->driver->type == TTY_DRIVER_TYPE_PTY &&
This series restores support for the secondary CPU DAI in samsung/i2s.c
driver and adds support for secondary CPU DAI on Odroid boards.
I have added 4 more clean up patches comparing to first version of the
patch set (16/22...19/22).
The first patch adds new platform device for the secondary
This patch introduces again registration of additional platform device as
we still need it for registering the secondary dmaengine PCM component.
This patch in most part is a revert of changes done in commit
be2c92eb64023e ("ASoC: samsung: i2s: Remove virtual device for secondary DAI")
This adjusts structleak to also work with non-struct types when they
are passed by reference, since those variables may leak just like
anything else. This is exposed via an improved set of Kconfig options.
(This does mean structleak is slightly misnamed now.)
Building with
The clock for generating I2S signals is also common for both CPU DAIs
so move it to the driver's common data structure.
Signed-off-by: Sylwester Nawrocki
Acked-by: Krzysztof Kozlowski
---
sound/soc/samsung/i2s.c | 70 +++--
1 file changed, 33 insertions(+),
There is no need to keep the PM suspend/resume register cache separate
for each DAI as those registers are common, move related i2s_dai data
structure to the driver's common data structure. This will allow us
to simplify the code a little eventually and to make it easier to follow.
The SFR region is common for both DAIs so move related data structure
field from struct i2s_dai to the common driver data structure.
Signed-off-by: Sylwester Nawrocki
Acked-by: Krzysztof Kozlowski
---
sound/soc/samsung/i2s.c | 105 ++--
1 file changed, 58
This is a part of conversion of Samsung platforms to use the custom DMA
config for specifying DMA channel names, in addition to passing custom
DMA device for the secondary CPU DAI's "PCM" component for some variants
of the I2S controller.
We also don't set the
The IP variant data is another thing common for both DAIs, move it
to the driver's common data structure.
Signed-off-by: Sylwester Nawrocki
Acked-by: Krzysztof Kozlowski
---
sound/soc/samsung/i2s.c | 42 -
1 file changed, 21 insertions(+), 21
Instead of a new plugin for stack initialization[1], this improves
structleak to handle initialization of all variable types. Since the
instrumentation happens at a different point, the "switch" statement
changes from the earlier posting[2] are no longer needed. As before,
this also introduces a
This patch makes the spinlock serializing access to the primary/secondary
PCM a per I2S controller lock, rather than a global one. There is no need
to have a global lock across multiple I2S controllers in the SoC.
Signed-off-by: Sylwester Nawrocki
Acked-by: Krzysztof Kozlowski
---
The quirk flags are common for the primary and the secondary DAI
so move respective field from struct i2s_dai to common driver data
structure.
Signed-off-by: Sylwester Nawrocki
Acked-by: Krzysztof Kozlowski
---
sound/soc/samsung/i2s.c | 34 +-
1 file changed, 13
Having the clocks provider data in struct samsung_i2s_priv, i.e. per the I2S
controller instance, rather than per CPU DAI better models the hardware and
simplifies the code a little. The clock provider is common for both DAIs.
Signed-off-by: Sylwester Nawrocki
Acked-by: Krzysztof Kozlowski
---
There is now no need to pass DMA channel names through the DAI DMA data,
custom DMA config of the PCM is now used for this purpose.
Signed-off-by: Sylwester Nawrocki
Acked-by: Krzysztof Kozlowski
---
sound/soc/samsung/i2s.c | 4
sound/soc/samsung/s3c2412-i2s.c | 2 --
701 - 800 of 1653 matches
Mail list logo