On Mon, 19 Nov 2018 05:58:52 PST (-0800), Christoph Hellwig wrote:
On Fri, Nov 16, 2018 at 08:52:14AM -0800, Palmer Dabbelt wrote:
As far as I can tell, it looks like m68k, mips, and powerpc mention an
IOMMU in their ports, don't set ARCH_HAS_SG_CHAIN, and with this patch set
won't set
Add new DEFINE_RAW_TERMINAL_SPINLOCK() and DEFINE_TERMINAL_SPINLOCK()
macro to define a raw terminal spinlock and a terminal spinlock.
Signed-off-by: Waiman Long
---
include/linux/spinlock_types.h | 34 +++---
kernel/printk/printk_safe.c| 2 +-
2 files changed,
By marking the internal pool_lock as a terminal lock, lockdep will be
able to skip full validation to improve locking performance.
Signed-off-by: Waiman Long
---
lib/debugobjects.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/debugobjects.c b/lib/debugobjects.c
index
The current lockdep_set_novalidate_class() implementation is like
a hack. It assigns a special class key for that lock and calls
lockdep_init_map() twice.
This patch changes the implementation to make it as a flag bit instead.
This will allow other special locking class types to be defined and
A terminal lock is a lock where further locking or unlocking on another
lock is not allowed. IOW, no forward dependency is permitted.
With such a restriction in place, we don't really need to do a full
validation of the lock chain involving a terminal lock. Instead,
we just check if there is any
The db->lock is a raw spinlock and so the lock hold time is supposed
to be short. This will not be the case when printk() is being involved
in some of the critical sections. In order to avoid the long hold time,
in case some messages need to be printed, the debug_object_is_on_stack()
and
By marking logbuf_lock and console_owner_lock as terminal locks,
it reduces the performance overhead when those locks are used with
lockdep enabled.
Signed-off-by: Waiman Long
---
kernel/printk/printk.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git
It turns out the version field in the lock_class structure isn't used
anywhere. Just remove it.
Signed-off-by: Waiman Long
---
include/linux/lockdep.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index 1fd82ff..c5335df 100644
---
v1->v2:
- Mark more locks as terminal.
- Add a patch to remove the unused version field from lock_class.
- Steal some bits from pin_count of held_lock for flags.
- Add a patch to warn if a task holding a raw spinlock is acquiring an
non-raw lock.
The purpose of this patchset is to
On 18-11-19 11:36:48, Konrad Rzeszutek Wilk wrote:
> On Mon, Nov 12, 2018 at 02:44:56PM +0800, Lu Baolu wrote:
> > This adds an uniformed API set for global PASIDs used by IOMMU
> > and device drivers which depend on IOMMU. It works for drivers
> > running on bare metal, full virtualized
Robin? Christ?
On Mon, Nov 05, 2018 at 02:40:50PM -0800, Nicolin Chen wrote:
> On Fri, Nov 02, 2018 at 07:35:42AM +0100, Christoph Hellwig wrote:
> > On Thu, Nov 01, 2018 at 02:07:55PM +, Robin Murphy wrote:
> > > On 31/10/2018 20:03, Nicolin Chen wrote:
> > >> The addresses within a single
On Wed, Nov 14, 2018 at 8:12 AM Christoph Hellwig wrote:
>
> On Wed, Nov 14, 2018 at 03:13:11PM +0100, Christoph Hellwig wrote:
> > Does the patch below make a difference for you? Assigning an
> > address to the S/G list is the only functional difference I could
> > spot. Drivers really should
By making task's delays->lock a terminal spinlock, it reduces the
lockdep overhead when this lock is used.
Signed-off-by: Waiman Long
---
kernel/delayacct.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/delayacct.c b/kernel/delayacct.c
index 2a12b98..49dd8d3
By making the object hash locks nestable terminal locks, we can avoid
a bunch of unnecessary lockdep validations as well as saving space
in the lockdep tables.
Signed-off-by: Waiman Long
---
lib/debugobjects.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git
There are use cases where we want to allow nesting of one terminal lock
underneath another terminal-like lock. That new lock type is called
nestable terminal lock which can optionally allow the acquisition of
no more than one regular (non-nestable) terminal lock underneath it.
Signed-off-by:
By making kernfs_open_node_lock a terminal spinlock, it reduces the
lockdep overhead when this lock is used.
Signed-off-by: Waiman Long
---
fs/kernfs/file.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
index dbf5bc2..a86fe22 100644
---
By defining depot_lock as a terminal spinlock, it reduces the
lockdep overhead when this lock is being used.
Signed-off-by: Waiman Long
---
lib/stackdepot.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/stackdepot.c b/lib/stackdepot.c
index e513459..fb17888 100644
---
By classifying the cgroup rstat percpu locks as terminal locks, it
reduces the lockdep overhead when these locks are being used.
Signed-off-by: Waiman Long
---
kernel/cgroup/rstat.c | 9 +++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/kernel/cgroup/rstat.c
The wait_lock in a rwsem is always acquired with IRQ disabled. For the
rwsem-xadd.c implementation, no other lock will be called while holding
the wait_lock. So it satisfies the condition of being a terminal lock.
By marking it as terminal, the lockdep overhead will be reduced.
Signed-off-by:
A task holding a raw spinlock should not acquire a non-raw lock as that
will break PREEMPT_RT kernel. Checking is now added and a lockdep warning
will be printed if that happens.
Signed-off-by: Waiman Long
---
include/linux/lockdep.h | 6 ++
include/linux/spinlock_types.h | 4
By making free_entries_lock a terminal spinlock, it reduces the lockdep
overhead when this lock is used.
Signed-off-by: Waiman Long
---
kernel/dma/debug.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index 231ca46..f891688 100644
By making quarantine_lock a terminal spinlock, it reduces the lockdep
overhead when this lock is being used.
Signed-off-by: Waiman Long
---
mm/kasan/quarantine.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/kasan/quarantine.c b/mm/kasan/quarantine.c
index
On Fri, Nov 09, 2018 at 02:41:18PM +, Robin Murphy wrote:
>> -
>> #define CMD_SET_TYPE(cmd, t) ((cmd)->data[1] |= ((t) << 28))
>> #define LOOP_TIMEOUT 10
>> @@ -2339,7 +2337,7 @@ static dma_addr_t __map_single(struct device *dev,
>> paddr &= PAGE_MASK;
>> address =
On Fri, Nov 09, 2018 at 03:12:34PM -0800, David Miller wrote:
> But patch #2 on the other hand, not so much.
>
> I hate seeing values returned by reference, it adds cost especially
> on cpus where all argments and return values fit in registers (we end
> up forcing a stack slot and memory
On Fri, Nov 16, 2018 at 08:52:14AM -0800, Palmer Dabbelt wrote:
> As far as I can tell, it looks like m68k, mips, and powerpc mention an
> IOMMU in their ports, don't set ARCH_HAS_SG_CHAIN, and with this patch set
> won't set ARCH_NO_SG_CHAIN.
m68k has no iommu, and not operations that operate
On Tue, Oct 9, 2018 at 8:02 AM Benjamin Herrenschmidt
wrote:
>
> On Wed, 2018-10-03 at 16:10 -0700, Alexander Duyck wrote:
> > > -* Because 32-bit DMA masks are so common we expect every
> > > architecture
> > > -* to be able to satisfy them - either by not supporting more
> > >
Hi Mike,
On Sat, Nov 17, 2018 at 8:07 PM Matthew Wilcox wrote:
>
> On Sat, Nov 17, 2018 at 12:26:38PM +0530, Souptick Joarder wrote:
> > On Fri, Nov 16, 2018 at 11:59 PM Mike Rapoport wrote:
> > > > + * vm_insert_range - insert range of kernel pages into user vma
> > > > + * @vma: user vma to
On 19/11/2018 14:18, Ramon Fried wrote:
On Tue, Oct 9, 2018 at 8:02 AM Benjamin Herrenschmidt
wrote:
On Wed, 2018-10-03 at 16:10 -0700, Alexander Duyck wrote:
-* Because 32-bit DMA masks are so common we expect every architecture
-* to be able to satisfy them - either by not
On Mon, Nov 19, 2018 at 08:43:09PM +0530, Souptick Joarder wrote:
> Hi Mike,
>
> On Sat, Nov 17, 2018 at 8:07 PM Matthew Wilcox wrote:
> >
> > On Sat, Nov 17, 2018 at 12:26:38PM +0530, Souptick Joarder wrote:
> > > On Fri, Nov 16, 2018 at 11:59 PM Mike Rapoport wrote:
> > > > > + *
On Mon, Nov 12, 2018 at 02:44:56PM +0800, Lu Baolu wrote:
> This adds an uniformed API set for global PASIDs used by IOMMU
> and device drivers which depend on IOMMU. It works for drivers
> running on bare metal, full virtualized environments and para-
> virtualized environment.
>
Are there also
On Mon, Nov 19, 2018 at 9:56 PM Mike Rapoport wrote:
>
> On Mon, Nov 19, 2018 at 08:43:09PM +0530, Souptick Joarder wrote:
> > Hi Mike,
> >
> > On Sat, Nov 17, 2018 at 8:07 PM Matthew Wilcox wrote:
> > >
> > > On Sat, Nov 17, 2018 at 12:26:38PM +0530, Souptick Joarder wrote:
> > > > On Fri, Nov
On 09/11/2018 16:37, Robin Murphy wrote:
On 09/11/2018 07:49, Christoph Hellwig wrote:
On Tue, Nov 06, 2018 at 05:27:14PM -0800, John Stultz wrote:
But at that point if I just re-apply "swiotlb: use swiotlb_map_page in
swiotlb_map_sg_attrs", I reproduce the hangs.
Any suggestions for how to
32 matches
Mail list logo