On 1/17/19 5:02 AM, Roman Penyaev wrote:
> Hi Jens,
>
> On 2019-01-16 18:49, Jens Axboe wrote:
>
> [...]
>
>> +static void *io_mem_alloc(size_t size)
>> +{
>> + gfp_t gfp_flags = GFP_KERNEL | __GFP_ZERO | __GFP_NOWARN | __GFP_COMP
>> |
>> + __GFP_NORETRY;
>> +
>> + return (void *) __get_free_pages(gfp_flags, get_order(size));
>
> Since these pages are shared between kernel and userspace, do we need
> to care about d-cache aliasing on armv6 (or other "strange" archs
> which I've never seen) with vivt or vipt cpu caches?
>
> E.g. vmalloc_user() targets this problem by aligning kernel address
> on SHMLBA, so no flush_dcache_page() is required.
I'm honestly not sure, it'd be trivial enough to stick a
flush_dcache_page() into the few areas we'd need it. The rings are
already page (SHMLBA) aligned.
--
Jens Axboe