On 19-Jun-18 11:23 AM, Alejandro Lucero wrote:


On Tue, Jun 19, 2018 at 10:24 AM, Burakov, Anatoly <anatoly.bura...@intel.com <mailto:anatoly.bura...@intel.com>> wrote:

    On 18-Jun-18 9:12 PM, Stojaczyk, DariuszX wrote:



            -----Original Message-----
            From: Alejandro Lucero
            [mailto:alejandro.luc...@netronome.com
            <mailto:alejandro.luc...@netronome.com>]
            Sent: Monday, June 18, 2018 9:33 PM

            On Mon, Jun 18, 2018 at 8:03 PM, Stojaczyk, DariuszX
            <dariuszx.stojac...@intel.com
            <mailto:dariuszx.stojac...@intel.com>
            <mailto:dariuszx.stojac...@intel.com
            <mailto:dariuszx.stojac...@intel.com>> >
            wrote:

                     Can you point me out to an NFP guide or some code
            that describes
            this in more detail?



            As I said, I'm working on a RFC. I will send something
            shortly. But I could give
            you an advance: the hugepages needs to be mapped below
            certain virtual
            address, 1TB, and I'm afraid that includes the primary and
            also the
            secondary processes. At least if any process can send or
            receive packets
            to/from a NFP.



        Thanks, I'm pretty sure we're safe, then.


                     If we're talking about base-virtaddr for hugepages,
            then that's always
            inherited from the primary process, regardless of what
            base-virtaddr is
            supplied to the secondary.




            But, is not your patch avoiding to use that base-virtaddr
            for secondary
            processes?


        I see now that the patch name is slightly misleading. Maybe I
        shouldn’t pick such a catchy title. Let me clarify: As of DPDK
        18.05, --base-virtaddr param for secondary process applications
        only affects that shadow memseg metadata that's not useful for
        anyone, but can still do a lot of harm. Hugepage memory in
        secondary processes is always mapped to the same addresses the
        primary process uses.

        D.


    Hi Alejandro,

    To solve this problem, one possible approach would be to have
    maximum VA address, and allocate memory downwards, rather than
    upwards. Is that by any chance approximate contents of your RFC? :)


Hi Anatoly,

There's a lot of space below 1TB, but this specific upper limit is just in the NFP case. My RFC will propose a generic solution assuming there could be other devices in the future, and not just NIC devices, which could have also some sort of limitation.

OK, looking forward to it.

The problem is, those devices limitations can not be known at memory initialization time, so some sort of check is required afterwards, once the devices have been proved and initialised.


Presumably, device driver would be in the best position to know things like that, no? Maybe a new device flag and an API to query such things from all devices?

--
Thanks,
Anatoly

Reply via email to