|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 12/12] xen/arm: add cache coloring support for Xen
Hi Jan,
On Mon, Sep 19, 2022 at 10:38 AM Jan Beulich <jbeulich@xxxxxxxx> wrote:
>
> On 16.09.2022 18:07, Carlo Nonato wrote:
> > On Thu, Sep 15, 2022 at 3:25 PM Jan Beulich <jbeulich@xxxxxxxx> wrote:
> >> On 26.08.2022 14:51, Carlo Nonato wrote:
> >>> @@ -218,6 +221,28 @@ void *__vmap(const mfn_t *mfn, unsigned int
> >>> granularity,
> >>> return va;
> >>> }
> >>>
> >>> +#ifdef CONFIG_CACHE_COLORING
> >>> +void * __vmap_colored(const mfn_t *mfn, unsigned int nr, unsigned int
> >>> align,
> >>> + unsigned int flags, enum vmap_region type)
> >>> +{
> >>> + void *va = vm_alloc(nr, align, type);
> >>> + unsigned long cur = (unsigned long)va;
> >>> + paddr_t pa = mfn_to_maddr(*mfn);
> >>> +
> >>> + for ( ; va && nr-- ; cur += PAGE_SIZE )
> >>> + {
> >>> + pa = next_xen_colored(pa);
> >>
> >> This may alter the address, yet the caller expects that the original
> >> address be mapped. I must be missing something?
> >
> > If the original address color is assigned to Xen, then next_xen_colored()
> > simply returns that address. If this isn't the case, then you're right: the
> > address changes to the correct, colored, one. The caller should expect
> > this behavior since this is the colored version of vmap, the one that takes
> > into account the Xen coloring configuration.
>
> That's (to me at least) very surprising behavior, and hence needs
> properly calling out in a code comment at the least.
>
> Personally I'm not convinced of having a function with this behavior,
> and instead I think the normal vmap() should do. As long as you're
> only allowing for order-0 allocations, that shouldn't be an issue
> anyway.
You mean creating an array of colored mfns (I mean with a colored machine
address) and passing it to vmap()? Am I understanding you correctly?
This is the only way I can see to use the original vmap() and respect
the coloring configuration at the same time. But isn't it a waste of time
and space to create this array?
> Jan
Thanks.
- Carlo Nonato
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |