Thread (32 messages) 32 messages, 3 authors, 2018-10-10

Re: [PATCH v8 10/15] octeontx2-af: Reconfig MSIX base with IOVA

flat view

From: Arnd Bergmann <arnd@arndb.de>
Date: 2018-10-10 15:19:20

On Wed, Oct 10, 2018 at 9:36 AM Sunil Kovvuri [off-list ref] wrote:
On Tue, Oct 9, 2018 at 5:30 PM Arnd Bergmann [off-list ref] wrote:
quoted
On Tue, Oct 9, 2018 at 11:20 AM Sunil Kovvuri [off-list ref] wrote:
quoted
On Tue, Oct 9, 2018 at 1:27 PM Arnd Bergmann [off-list ref] wrote:
quoted
On Tue, Oct 9, 2018 at 9:03 AM Sunil Kovvuri [off-list ref] wrote:
quoted
On Mon, Oct 8, 2018 at 5:38 PM Arnd Bergmann [off-list ref] wrote:
quoted
On Sun, Oct 7, 2018 at 5:01 PM [off-list ref] wrote:
I think if you enable CONFIG_DEBUG_VIRTUAL, the virt_to_page()
above should trigger a warning in

phys_addr_t __virt_to_phys(unsigned long x)
{
        WARN(!__is_lm_address(x),
             "virt_to_phys used for non-linear address: %pK (%pS)\n",
              (void *)x,
              (void *)x);

        return __virt_to_phys_nodebug(x);
}

Can you verify that?
No, it isn't, as for 64bit systems CONFIG_SPARSEMEM_VMEMMAP is enabled.
But that is also user-selectable, right? It still seems to be really
fragile to rely on non-documented behavior of virt_to_phys()
here, if that only works for some configurations.
quoted
But is there any alternative to what is being done ?
I'm not completely sure, but there may be a way to do this correctly
using the iommu API instead of the dma-mapping API. What you do
here is fairly rare, but not unprecedented.
After further checking the only way i found is using dma_map_resource() which
accepts physical address and creates a mapping. Will test and submit next series
with the changes.
Ah, perfect. I remember having seen this in the past, but forgot about
it when commenting here. This should be the correct way to do it. If
it doesn't work, we need to fix the implementation.

       Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help