lkml.org 
[lkml]   [2022]   [Sep]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCHv8 00/11] Linear Address Masking enabling
    Hi Ashok,

    On Fri, 9 Sep 2022 16:08:02 +0000, Ashok Raj <ashok_raj@linux.intel.com>
    wrote:

    > > diff --git a/arch/x86/include/uapi/asm/prctl.h
    > > b/arch/x86/include/uapi/asm/prctl.h index a31e27b95b19..e5c04ced36c9
    > > 100644 --- a/arch/x86/include/uapi/asm/prctl.h
    > > +++ b/arch/x86/include/uapi/asm/prctl.h
    > > @@ -23,5 +23,6 @@
    > > #define ARCH_GET_UNTAG_MASK 0x4001
    > > #define ARCH_ENABLE_TAGGED_ADDR 0x4002
    > > #define ARCH_GET_MAX_TAG_BITS 0x4003
    > > +#define ARCH_ENABLE_TAGGED_ADDR_FORCED 0x4004
    > >
    > > #endif /* _ASM_X86_PRCTL_H */
    > > diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
    > > index 337f80a0862f..7d89a2fd1a55 100644
    > > --- a/arch/x86/kernel/process_64.c
    > > +++ b/arch/x86/kernel/process_64.c
    > > @@ -774,7 +774,8 @@ static bool lam_u48_allowed(void)
    > > #define LAM_U48_BITS 15
    > > #define LAM_U57_BITS 6
    > >
    > > -static int prctl_enable_tagged_addr(struct mm_struct *mm, unsigned
    > > long nr_bits) +static int prctl_enable_tagged_addr(struct mm_struct
    > > *mm, unsigned long nr_bits,
    > > + bool forced)
    > > {
    > > int ret = 0;
    > >
    > > @@ -793,6 +794,11 @@ static int prctl_enable_tagged_addr(struct
    > > mm_struct *mm, unsigned long nr_bits) goto out;
    > > }
    > >
    > > + if (pasid_valid(mm->pasid) && !forced) {
    I don't think this works since we have lazy pasid free. for example,
    after all the devices did sva_unbind, mm->pasid we'll remain valid until
    mmdrop(). LAM should be supported in this case.

    Perhaps, we could introduce another prctl flag for SVA, PR_GET_SVA?
    Both iommu driver and LAM can set/query the flag. LAM applications may not
    be the only ones want to know if share virtual addressing is on.

    > > + ret = -EBUSY;
    > > + goto out;
    > > + }
    > > +

    Thanks,

    Jacob

    \
     
     \ /
      Last update: 2022-09-12 22:36    [W:3.811 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site