|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3/9] AMD/IOMMU: use bit field for IRTE
>>> On 18.06.19 at 12:37, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 13/06/2019 14:23, Jan Beulich wrote:
>> At the same time restrict its scope to just the single source file
>> actually using it, and abstract accesses by introducing a union of
>> pointers. (A union of the actual table entries is not used to make it
>> impossible to [wrongly, once the 128-bit form gets added] perform
>> pointer arithmetic / array accesses on derived types.)
>>
>> Also move away from updating the entries piecemeal: Construct a full new
>> entry, and write it out.
>>
>> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>> ---
>> It would have been nice to use write_atomic() or ACCESS_ONCE() for the
>> actual writes, but both cast the value to a scalar one, which doesn't
>> suit us here (and I also didn't want to make the compound type a union
>> with a raw member just for this).
>>
>> --- a/xen/drivers/passthrough/amd/iommu_intr.c
>> +++ b/xen/drivers/passthrough/amd/iommu_intr.c
>> @@ -23,6 +23,23 @@
>> #include <asm/io_apic.h>
>> #include <xen/keyhandler.h>
>>
>> +struct irte_basic {
>
> I'd suggest irte_32, to go with irte_128 in the following patch.
>
> The 128bit format is also used for posted interrupts, and isn't specific
> to x2apic support.
There are still two forms of 128-bit entries, and the intention with
the chosen names was for the other one to become irte_guest.
> Furthermore, calling it irte_full isn't a term I can see in the manual,
> and is falling into the naming trap that USB currently lives in.
Except that other than for USB's transfer speeds I can't really see
this getting wider and wider.
>> @@ -101,47 +118,44 @@ static unsigned int alloc_intremap_entry
>> return slot;
>> }
>>
>> -static u32 *get_intremap_entry(int seg, int bdf, int offset)
>> +static union irte_ptr get_intremap_entry(unsigned int seg, unsigned int bdf,
>> + unsigned int offset)
>
> As this is changing, s/offset/entry/ to avoid any confusion where offset
> might be in units of bytes.
I don't really mind - I think both names are sufficiently clear, but
I'll switch since you think the other name is better.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |