Le ven. 27 oct. 2017 à 17:17, Bill Fischofer <bill.fischo...@linaro.org> a
écrit :

> The problem with scanning, especially in a VNF environment, is that (a)
> the application probably isn't authorized to to that
>

nothing prevents scanning what is available for n the vm. "Scale up" Events
are triggered when increasing resources (memory cpus Ethernet ports...)

and (b) the application certainly doesn't have real visibility into what
> the actual device topology is.
>

Qemu allows to select if the VM has visibility of a real nuns topology or a
virtua one

It only knows what it "needs to know" (as determined by higher-level
> functions) so there's no point trying to second-guess that. Applications
> will be told "use these devices" and that should be our design assumption
> in this support.
>

Vnf manager will know precisely the host vision of things (use this
vhostuser interface) but don't don't know how it may end up being named in
guest . This is a key problem that has been identified by British telecom .

>
> On Fri, Oct 27, 2017 at 10:10 AM, Honnappa Nagarahalli <
> honnappa.nagaraha...@linaro.org> wrote:
>
>>
>>
>> On 27 October 2017 at 09:50, Bill Fischofer <bill.fischo...@linaro.org>
>> wrote:
>>
>>> ODP 2.0 assumes Linux system services are available so the question of
>>> how to operate in bare metal environments is a separate one and up to those
>>> ODP implementations. Again the application will provide a
>>> sufficiently-qualified device name string to identify which device it wants
>>> to open in an unambiguous manner. How it does that is again outside the
>>> scope of ODP so this isn't something we need to worry about. All ODP needs
>>> to do is be able to identify which driver needs to be loaded and passed the
>>> rest of the device name and then that driver handles the rest.
>>>
>>> By baremetal, I meant host with Linux OS.
>> I agree, it is applications responsibility to provide the device string,
>> how it does that is outside the scope of ODP.
>> We will continue the discussion on the slides. But, in the meanwhile, I
>> am thinking of possible design if we want to avoid complete scanning of the
>> platform during initialization. In the current packet I/O framework, all
>> the function pointers of the driver are known before odp_pktio_open API is
>> called. If we have to stick to this design, the drivers for the PCI device
>> should have registered their functions with the packet IO framework before
>> odp_pktio_open is called.
>>
>>
>>> On Fri, Oct 27, 2017 at 2:36 AM, Francois Ozog <francois.o...@linaro.org
>>> > wrote:
>>>
>>>> Well, we do not need to scan all the platform because the pktio_open
>>>> contains enough information to target the right device.
>>>> This is almost true as we need to have an additional "selector" for the
>>>> port on multiport NICs that are controlled by a single pci ID.
>>>> <enumerator>:<enumerator specific string>:<port> or something like that.
>>>>
>>>> All ports may not be typically handled by ODP. For instance management
>>>> network will most certainly be a native Linux one.
>>>>
>>>> Dpaa2 bus may impose us to full scan if we have to go the full driver
>>>> route (vfio-pci) but this will not be necessary if we can have the
>>>> net-mdev. In that case, the dpaa2 bus can be handled the same way as pci.
>>>>
>>>> Dynamic bus events (hot plug) are a nice to have and may be dropped
>>>> from coding yet we can talk about it. and when it come to this, this is not
>>>> about dealing with the bus controllers directly but tapping into Linux
>>>> event framework.
>>>>
>>>> I know we can simplify things and I am very flexible in what we can
>>>> decide not to do. That said I have been dealing with operational issues on
>>>> that very topic since 2006 when I designed my first kernel based fast
>>>> packet IO.... So there will be topics where I'll push hard to explain (not
>>>> impose) why we should go a harder route. This slows things down but I think
>>>> this is worth it.
>>>>
>>>> FF
>>>>
>>>> Le ven. 27 oct. 2017 à 06:23, Honnappa Nagarahalli <
>>>> honnappa.nagaraha...@linaro.org> a écrit :
>>>>
>>>>> On 26 October 2017 at 16:34, Bill Fischofer <bill.fischo...@linaro.org>
>>>>> wrote:
>>>>> > I agree with Maxim. Best to get one or two working drivers and see
>>>>> what else
>>>>> > is needed. The intent here is not for ODP to become another OS, so
>>>>> I'm not
>>>>> > sure why we need to concern ourselves with bus walking and similar
>>>>> arcana.
>>>>> > Linux has already long solved this problem. We should leverage
>>>>> what's there,
>>>>> > not try to reinvent it.
>>>>> >
>>>>> > ODP applications are told what I/O interfaces to use, either through
>>>>> an
>>>>> > application configuration file, command line, or other means outside
>>>>> the
>>>>> > scope of ODP itself. ODP's job is simply to connect applications to
>>>>> these
>>>>> > configured I/O interfaces when they call odp_pktio_open(). The name
>>>>> used for
>>>>> > interfaces is simply a string that we've defined to have the format:
>>>>> >
>>>>> > class: device: other-info-needed-by-driver
>>>>> >
>>>>> > We've defined a number of classes already:
>>>>> >
>>>>> > - loop
>>>>> > - pcap
>>>>> > - ipc
>>>>> > - dpdk
>>>>> > - socket
>>>>> > - socket_mmap
>>>>> > - tap
>>>>> > etc.
>>>>> >
>>>>> > We simply need to define new classes (e.g., ddf, mdev) and the names
>>>>> they
>>>>> > need to take to identify a specific device and the associated driver
>>>>> to use
>>>>> > for operate that device. The driver is then loaded if necessary and
>>>>> its
>>>>> > open() interface is called.
>>>>> >
>>>>>
>>>>> Coincidentally, internally we were discussing this exactly.
>>>>>
>>>>> Why do we need to scan and understand the complete platform during
>>>>> initialization? - I would think, mostly, ODP will run in a platform
>>>>> (baremetal, VM, container) where all the devices are supposed to be
>>>>> used by ODP (i.e. ODP will not run in a platform where it will share
>>>>> the platform with other applications). So why not scan and identify
>>>>> the devices/drivers and create the packet IO ops during
>>>>> initialization. The packet I/O framework assumes that various methods
>>>>> (open, close, send, recv etc) of the device driver are known when
>>>>> odp_pktio_open API is called. None of that has to change.
>>>>>
>>>>> Another solution I can think of is (tweak to reduce the time spent in
>>>>> scanning etc), instead of scanning all the devices, DDF initialization
>>>>> function can be provided with all the ports the user has requested.
>>>>>
>>>>> If the scanning for the device and identifying the driver has to be
>>>>> triggered through the odp_pktio_open API, the current packet IO
>>>>> framework needs to change.
>>>>>
>>>>> > On Thu, Oct 26, 2017 at 3:59 PM, Maxim Uvarov <
>>>>> maxim.uva...@linaro.org>
>>>>> > wrote:
>>>>> >>
>>>>> >> Hello Honnappa,
>>>>> >>
>>>>> >> I think we also need to take a look from bottom. I.e. from exact
>>>>> drivers
>>>>> >> to
>>>>> >> implement. That it will be more clear which interface is needed to
>>>>> be
>>>>> >> created.
>>>>> >> Do you have some list of drivers which needed to be implemented?
>>>>> I.e. with
>>>>> >> pci drivers I think we in a good way, but non pci drivers are under
>>>>> >> question.
>>>>> >> I think we should not over-complicate odp itself with huge
>>>>> discovery and
>>>>> >> numeration of devices. Let's take a look what is the minimal
>>>>> interface to
>>>>> >> support
>>>>> >> devices.
>>>>> >>
>>>>> >> Best regards,
>>>>> >> Maxim.
>>>>> >>
>>>>> >> On 26 October 2017 at 23:35, Honnappa Nagarahalli <
>>>>> >> honnappa.nagaraha...@linaro.org> wrote:
>>>>> >>
>>>>> >> > Hi,
>>>>> >> >    Agree, we have taken 2 hours and the progress has been slow.
>>>>> But
>>>>> >> > the discussions have been good and helpful to us at Arm. The goal
>>>>> is
>>>>> >> > to identify the gaps and work items. I am not sure if it has been
>>>>> >> > helpful to others, please let me know.
>>>>> >> >
>>>>> >> > To speed this up, I propose few options below, let me know your
>>>>> opinion:
>>>>> >> >
>>>>> >> > 1) Have 2 additional (along with regular ODP 2.0) calls next week
>>>>> - We
>>>>> >> > can do Tuesday 7:00am and then another on Thursday 7:00am
>>>>> (Austin, TX
>>>>> >> > time, GMT-6, one hour before the regular ODP-2.0)
>>>>> >> >
>>>>> >> > 2) Resolve the pending PRs on emails
>>>>> >> >
>>>>> >> > 3) Discuss the DDF slides on email - Not sure how effective it
>>>>> will be
>>>>> >> >
>>>>> >> > Any other solutions?
>>>>> >> >
>>>>> >> > Thank you,
>>>>> >> > Honnappa
>>>>> >> >
>>>>> >
>>>>> >
>>>>>
>>>> --
>>>> [image: Linaro] <http://www.linaro.org/>
>>>> François-Frédéric Ozog | *Director Linaro Networking Group*
>>>> T: +33.67221.6485
>>>> francois.o...@linaro.org | Skype: ffozog
>>>>
>>>>
>>>
>>
> --
[image: Linaro] <http://www.linaro.org/>
François-Frédéric Ozog | *Director Linaro Networking Group*
T: +33.67221.6485 <javascript:void(0);>
francois.o...@linaro.org | Skype: ffozog

Reply via email to