2004-11-22 14:58:37

by Brice Goglin

[permalink] [raw]
Subject: kmap_atomic

Hi,

I would like to know if I can use kmap_atomic with KM_USER[01] type
within a non-interrupt context. Looking at comments near kmap_atomic
declarations on sparc or ppc, it seems that this is discouraged.

But lots of code (like filesystem stuff) are currently using it
outside of interrupt context.
Are there special requirements about KM_USER[01] usage in interrupt
or non-interrupt contexts ?
Is it documented somewhere how we can use it ?

What I want to do is just kmap_atomic, copy and kunmap_atomic.

Regards,
--
Brice Goglin
================================================
Ph.D Student
Laboratoire de l'Informatique et du Parall?lisme
CNRS-ENS Lyon-INRIA-UCB Lyon
France


2004-11-23 00:03:17

by Andrew Morton

[permalink] [raw]
Subject: Re: kmap_atomic

Brice Goglin <[email protected]> wrote:
>
> I would like to know if I can use kmap_atomic with KM_USER[01] type
> within a non-interrupt context.

That is what they are designed for. Using KM_USER0 and KM_USER1 in
non-interrupt context is correct.

2004-11-22 16:30:24

by William Lee Irwin III

[permalink] [raw]
Subject: Re: kmap_atomic

On Mon, Nov 22, 2004 at 03:54:24PM +0100, Brice Goglin wrote:
> I would like to know if I can use kmap_atomic with KM_USER[01] type
> within a non-interrupt context. Looking at comments near kmap_atomic
> declarations on sparc or ppc, it seems that this is discouraged.
> But lots of code (like filesystem stuff) are currently using it
> outside of interrupt context.
> Are there special requirements about KM_USER[01] usage in interrupt
> or non-interrupt contexts ?
> Is it documented somewhere how we can use it ?
> What I want to do is just kmap_atomic, copy and kunmap_atomic.

Those comments are stale. This varies by km_type. A given km_type may
only be used in one context. KM_USER0/KM_USER1 are specifically
dedicated to process context copying. KM_IRQ0/KM_IRQ1 are specifically
devoted to interrupt-context copying.


-- wli