* [dpdk-dev] [RFC 0/2] nfp driver fixes @ 2018-04-12 22:22 Aaron Conole 2018-04-12 22:22 ` [dpdk-dev] [RFC 1/2] nfp: unlink the appropriate lock file Aaron Conole ` (2 more replies) 0 siblings, 3 replies; 22+ messages in thread From: Aaron Conole @ 2018-04-12 22:22 UTC (permalink / raw) To: dev; +Cc: Alejandro Lucero Two fixes, one which is fairly obvious (1/2), the other which may allow support of non-root users. These patches are only compile tested which is why they are submitted as RFC. After a proper test, will resubmit them as PATCH (with any suggested / recommended changes). Aaron Conole (2): nfp: unlink the appropriate lock file nfp: allow for non-root user drivers/net/nfp/nfp_nfpu.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) -- 2.14.3 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [dpdk-dev] [RFC 1/2] nfp: unlink the appropriate lock file 2018-04-12 22:22 [dpdk-dev] [RFC 0/2] nfp driver fixes Aaron Conole @ 2018-04-12 22:22 ` Aaron Conole 2018-04-13 7:31 ` Alejandro Lucero 2018-04-12 22:22 ` [dpdk-dev] [RFC 2/2] nfp: allow for non-root user Aaron Conole 2018-04-13 7:26 ` [dpdk-dev] [RFC 0/2] nfp driver fixes Alejandro Lucero 2 siblings, 1 reply; 22+ messages in thread From: Aaron Conole @ 2018-04-12 22:22 UTC (permalink / raw) To: dev; +Cc: Alejandro Lucero The nfpu_close needs to unlink the lock file associated with the nfp descriptor, not lock file 0. Fixes: d12206e00590 ("net/nfp: add NSP user space interface") Cc: stable@dpdk.org Signed-off-by: Aaron Conole <aconole@redhat.com> --- drivers/net/nfp/nfp_nfpu.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c index f11afef35..2ed985ff4 100644 --- a/drivers/net/nfp/nfp_nfpu.c +++ b/drivers/net/nfp/nfp_nfpu.c @@ -101,8 +101,12 @@ nfpu_open(struct rte_pci_device *pci_dev, nfpu_desc_t *desc, int nfp) int nfpu_close(nfpu_desc_t *desc) { + char lockname[30]; + rte_free(desc->nspu); close(desc->lock); - unlink("/var/lock/nfp0"); + + snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); + unlink(lockname); return 0; } -- 2.14.3 ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 1/2] nfp: unlink the appropriate lock file 2018-04-12 22:22 ` [dpdk-dev] [RFC 1/2] nfp: unlink the appropriate lock file Aaron Conole @ 2018-04-13 7:31 ` Alejandro Lucero 2018-04-13 13:24 ` Aaron Conole 0 siblings, 1 reply; 22+ messages in thread From: Alejandro Lucero @ 2018-04-13 7:31 UTC (permalink / raw) To: Aaron Conole; +Cc: dev Although the patch is correct, the truth is there was not option for locks but "nfp0", because the PMD did not support more than one NFP card. After commit with CPP support, the PMD can support more than one NFP card, but this interface is not supported anymore and this file was removed. is this patch coming from some code revision or from a problem you found? On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> wrote: > The nfpu_close needs to unlink the lock file associated with the > nfp descriptor, not lock file 0. > > Fixes: d12206e00590 ("net/nfp: add NSP user space interface") > > Cc: stable@dpdk.org > Signed-off-by: Aaron Conole <aconole@redhat.com> > --- > drivers/net/nfp/nfp_nfpu.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c > index f11afef35..2ed985ff4 100644 > --- a/drivers/net/nfp/nfp_nfpu.c > +++ b/drivers/net/nfp/nfp_nfpu.c > @@ -101,8 +101,12 @@ nfpu_open(struct rte_pci_device *pci_dev, nfpu_desc_t > *desc, int nfp) > int > nfpu_close(nfpu_desc_t *desc) > { > + char lockname[30]; > + > rte_free(desc->nspu); > close(desc->lock); > - unlink("/var/lock/nfp0"); > + > + snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); > + unlink(lockname); > return 0; > } > -- > 2.14.3 > > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 1/2] nfp: unlink the appropriate lock file 2018-04-13 7:31 ` Alejandro Lucero @ 2018-04-13 13:24 ` Aaron Conole 0 siblings, 0 replies; 22+ messages in thread From: Aaron Conole @ 2018-04-13 13:24 UTC (permalink / raw) To: Alejandro Lucero; +Cc: dev Alejandro Lucero <alejandro.lucero@netronome.com> writes: > Although the patch is correct, the truth is there was not option for locks but "nfp0", because > the PMD did not support more than one NFP card. > > After commit with CPP support, the PMD can support more than one NFP card, but this > interface is not supported anymore and this file was removed. > > is this patch coming from some code revision or from a problem you found? Just a code review - we were reported a problem initializing the driver, and in looking at the lock/unlock code, it seems that it was always releasing the nfp0 lock. Good to know that in practice it likely wouldn't cause real harm. I intend to resubmit this as is. Thanks, Alejandro! > On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> wrote: > > The nfpu_close needs to unlink the lock file associated with the > nfp descriptor, not lock file 0. > > Fixes: d12206e00590 ("net/nfp: add NSP user space interface") > > Cc: stable@dpdk.org > Signed-off-by: Aaron Conole <aconole@redhat.com> > --- > drivers/net/nfp/nfp_nfpu.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c > index f11afef35..2ed985ff4 100644 > --- a/drivers/net/nfp/nfp_nfpu.c > +++ b/drivers/net/nfp/nfp_nfpu.c > @@ -101,8 +101,12 @@ nfpu_open(struct rte_pci_device *pci_dev, nfpu_desc_t *desc, > int nfp) > int > nfpu_close(nfpu_desc_t *desc) > { > + char lockname[30]; > + > rte_free(desc->nspu); > close(desc->lock); > - unlink("/var/lock/nfp0"); > + > + snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); > + unlink(lockname); > return 0; > } > -- > 2.14.3 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-12 22:22 [dpdk-dev] [RFC 0/2] nfp driver fixes Aaron Conole 2018-04-12 22:22 ` [dpdk-dev] [RFC 1/2] nfp: unlink the appropriate lock file Aaron Conole @ 2018-04-12 22:22 ` Aaron Conole 2018-04-13 7:37 ` Alejandro Lucero 2018-04-13 7:26 ` [dpdk-dev] [RFC 0/2] nfp driver fixes Alejandro Lucero 2 siblings, 1 reply; 22+ messages in thread From: Aaron Conole @ 2018-04-12 22:22 UTC (permalink / raw) To: dev; +Cc: Alejandro Lucero Currently, the nfp lock files are taken from the global lock file location, which will work when the user is running as root. However, some distributions and applications (notably ovs 2.8+ on RHEL/Fedora) run as a non-root user. Signed-off-by: Aaron Conole <aconole@redhat.com> --- drivers/net/nfp/nfp_nfpu.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c index 2ed985ff4..ae2e07220 100644 --- a/drivers/net/nfp/nfp_nfpu.c +++ b/drivers/net/nfp/nfp_nfpu.c @@ -18,6 +18,22 @@ #define NFP_CFG_EXP_BAR 7 #define NFP_CFG_EXP_BAR_CFG_BASE 0x30000 +#define NFP_LOCKFILE_PATH_FMT "%s/nfp%d" + +/* get nfp lock file path (/var/lock if root, $HOME otherwise) */ +static void +nspu_get_lockfile_path(char *buffer, int bufsz, nfpu_desc_t *desc) +{ + const char *dir = "/var/lock"; + const char *home_dir = getenv("HOME"); + + if (getuid() != 0 && home_dir != NULL) + dir = home_dir; + + /* use current prefix as file path */ + snprintf(buffer, bufsz, NFP_LOCKFILE_PATH_FMT, dir, + desc->nfp); +} /* There could be other NFP userspace tools using the NSP interface. * Make sure there is no other process using it and locking the access for @@ -30,9 +46,7 @@ nspv_aquire_process_lock(nfpu_desc_t *desc) struct flock lock; char lockname[30]; - memset(&lock, 0, sizeof(lock)); - - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); /* Using S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH */ desc->lock = open(lockname, O_RDWR | O_CREAT, 0666); @@ -106,7 +120,6 @@ nfpu_close(nfpu_desc_t *desc) rte_free(desc->nspu); close(desc->lock); - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); - unlink(lockname); + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); return 0; } -- 2.14.3 ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-12 22:22 ` [dpdk-dev] [RFC 2/2] nfp: allow for non-root user Aaron Conole @ 2018-04-13 7:37 ` Alejandro Lucero 2018-04-13 13:31 ` Aaron Conole 0 siblings, 1 reply; 22+ messages in thread From: Alejandro Lucero @ 2018-04-13 7:37 UTC (permalink / raw) To: Aaron Conole; +Cc: dev Again, this patch is correct, but because NFP PMD needs to access /sys/bus/pci/devices/$DEVICE_PCI_STRING/resource$RESOURCE_ID, and these files have just read/write accesses for root, I do not know if this is really necessary. Being honest, I have not used a DPDK app with NFP PMD and not being root. Does it work with non-root users and other PMDs with same requirements regarding sysfs resource files? On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> wrote: > Currently, the nfp lock files are taken from the global lock file > location, which will work when the user is running as root. However, > some distributions and applications (notably ovs 2.8+ on RHEL/Fedora) > run as a non-root user. > > Signed-off-by: Aaron Conole <aconole@redhat.com> > --- > drivers/net/nfp/nfp_nfpu.c | 23 ++++++++++++++++++----- > 1 file changed, 18 insertions(+), 5 deletions(-) > > diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c > index 2ed985ff4..ae2e07220 100644 > --- a/drivers/net/nfp/nfp_nfpu.c > +++ b/drivers/net/nfp/nfp_nfpu.c > @@ -18,6 +18,22 @@ > #define NFP_CFG_EXP_BAR 7 > > #define NFP_CFG_EXP_BAR_CFG_BASE 0x30000 > +#define NFP_LOCKFILE_PATH_FMT "%s/nfp%d" > + > +/* get nfp lock file path (/var/lock if root, $HOME otherwise) */ > +static void > +nspu_get_lockfile_path(char *buffer, int bufsz, nfpu_desc_t *desc) > +{ > + const char *dir = "/var/lock"; > + const char *home_dir = getenv("HOME"); > + > + if (getuid() != 0 && home_dir != NULL) > + dir = home_dir; > + > + /* use current prefix as file path */ > + snprintf(buffer, bufsz, NFP_LOCKFILE_PATH_FMT, dir, > + desc->nfp); > +} > > /* There could be other NFP userspace tools using the NSP interface. > * Make sure there is no other process using it and locking the access for > @@ -30,9 +46,7 @@ nspv_aquire_process_lock(nfpu_desc_t *desc) > struct flock lock; > char lockname[30]; > > - memset(&lock, 0, sizeof(lock)); > - > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > /* Using S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH > */ > desc->lock = open(lockname, O_RDWR | O_CREAT, 0666); > @@ -106,7 +120,6 @@ nfpu_close(nfpu_desc_t *desc) > rte_free(desc->nspu); > close(desc->lock); > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); > - unlink(lockname); > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > return 0; > } > -- > 2.14.3 > > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-13 7:37 ` Alejandro Lucero @ 2018-04-13 13:31 ` Aaron Conole 2018-04-13 15:31 ` Alejandro Lucero 0 siblings, 1 reply; 22+ messages in thread From: Aaron Conole @ 2018-04-13 13:31 UTC (permalink / raw) To: Alejandro Lucero; +Cc: dev, Adrien Mazarguil Alejandro Lucero <alejandro.lucero@netronome.com> writes: > Again, this patch is correct, but because NFP PMD needs to access > /sys/bus/pci/devices/$DEVICE_PCI_STRING/resource$RESOURCE_ID, and these files have just > read/write accesses for root, I do not know if this is really necessary. > > Being honest, I have not used a DPDK app with NFP PMD and not being root. Does it work > with non-root users and other PMDs with same requirements regarding sysfs resource files? We do run as non-root user definitely with Intel PMDs. I'm not very sure about other vendors, but I think mlx pmd runs as non-root user (and it was modified to move off of sysfs for that reason[1]). I'll continue to push for more information from the testing side to find out though. [1]: http://dpdk.org/ml/archives/dev/2018-February/090586.html > On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> wrote: > > Currently, the nfp lock files are taken from the global lock file > location, which will work when the user is running as root. However, > some distributions and applications (notably ovs 2.8+ on RHEL/Fedora) > run as a non-root user. > > Signed-off-by: Aaron Conole <aconole@redhat.com> > --- > drivers/net/nfp/nfp_nfpu.c | 23 ++++++++++++++++++----- > 1 file changed, 18 insertions(+), 5 deletions(-) > > diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c > index 2ed985ff4..ae2e07220 100644 > --- a/drivers/net/nfp/nfp_nfpu.c > +++ b/drivers/net/nfp/nfp_nfpu.c > @@ -18,6 +18,22 @@ > #define NFP_CFG_EXP_BAR 7 > > #define NFP_CFG_EXP_BAR_CFG_BASE 0x30000 > +#define NFP_LOCKFILE_PATH_FMT "%s/nfp%d" > + > +/* get nfp lock file path (/var/lock if root, $HOME otherwise) */ > +static void > +nspu_get_lockfile_path(char *buffer, int bufsz, nfpu_desc_t *desc) > +{ > + const char *dir = "/var/lock"; > + const char *home_dir = getenv("HOME"); > + > + if (getuid() != 0 && home_dir != NULL) > + dir = home_dir; > + > + /* use current prefix as file path */ > + snprintf(buffer, bufsz, NFP_LOCKFILE_PATH_FMT, dir, > + desc->nfp); > +} > > /* There could be other NFP userspace tools using the NSP interface. > * Make sure there is no other process using it and locking the access for > @@ -30,9 +46,7 @@ nspv_aquire_process_lock(nfpu_desc_t *desc) > struct flock lock; > char lockname[30]; > > - memset(&lock, 0, sizeof(lock)); > - > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > /* Using S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH */ > desc->lock = open(lockname, O_RDWR | O_CREAT, 0666); > @@ -106,7 +120,6 @@ nfpu_close(nfpu_desc_t *desc) > rte_free(desc->nspu); > close(desc->lock); > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); > - unlink(lockname); > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > return 0; > } > -- > 2.14.3 ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-13 13:31 ` Aaron Conole @ 2018-04-13 15:31 ` Alejandro Lucero 2018-04-17 15:44 ` Alejandro Lucero 0 siblings, 1 reply; 22+ messages in thread From: Alejandro Lucero @ 2018-04-13 15:31 UTC (permalink / raw) To: Aaron Conole; +Cc: dev, Adrien Mazarguil On Fri, Apr 13, 2018 at 2:31 PM, Aaron Conole <aconole@redhat.com> wrote: > Alejandro Lucero <alejandro.lucero@netronome.com> writes: > > > Again, this patch is correct, but because NFP PMD needs to access > > /sys/bus/pci/devices/$DEVICE_PCI_STRING/resource$RESOURCE_ID, and these > files have just > > read/write accesses for root, I do not know if this is really necessary. > > > > Being honest, I have not used a DPDK app with NFP PMD and not being > root. Does it work > > with non-root users and other PMDs with same requirements regarding > sysfs resource files? > > We do run as non-root user definitely with Intel PMDs. > > I'm not very sure about other vendors, but I think mlx pmd runs as > non-root user (and it was modified to move off of sysfs for that > reason[1]). > > It is possible to not rely on sysfs resource files if device is attached to VFIO, but I think that is a must with UIO. > I'll continue to push for more information from the testing side to find > out though. > > [1]: http://dpdk.org/ml/archives/dev/2018-February/090586.html > > > On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> > wrote: > > > > Currently, the nfp lock files are taken from the global lock file > > location, which will work when the user is running as root. However, > > some distributions and applications (notably ovs 2.8+ on RHEL/Fedora) > > run as a non-root user. > > > > Signed-off-by: Aaron Conole <aconole@redhat.com> > > --- > > drivers/net/nfp/nfp_nfpu.c | 23 ++++++++++++++++++----- > > 1 file changed, 18 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c > > index 2ed985ff4..ae2e07220 100644 > > --- a/drivers/net/nfp/nfp_nfpu.c > > +++ b/drivers/net/nfp/nfp_nfpu.c > > @@ -18,6 +18,22 @@ > > #define NFP_CFG_EXP_BAR 7 > > > > #define NFP_CFG_EXP_BAR_CFG_BASE 0x30000 > > +#define NFP_LOCKFILE_PATH_FMT "%s/nfp%d" > > + > > +/* get nfp lock file path (/var/lock if root, $HOME otherwise) */ > > +static void > > +nspu_get_lockfile_path(char *buffer, int bufsz, nfpu_desc_t *desc) > > +{ > > + const char *dir = "/var/lock"; > > + const char *home_dir = getenv("HOME"); > > + > > + if (getuid() != 0 && home_dir != NULL) > > + dir = home_dir; > > + > > + /* use current prefix as file path */ > > + snprintf(buffer, bufsz, NFP_LOCKFILE_PATH_FMT, dir, > > + desc->nfp); > > +} > > > > /* There could be other NFP userspace tools using the NSP interface. > > * Make sure there is no other process using it and locking the access > for > > @@ -30,9 +46,7 @@ nspv_aquire_process_lock(nfpu_desc_t *desc) > > struct flock lock; > > char lockname[30]; > > > > - memset(&lock, 0, sizeof(lock)); > > - > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", > desc->nfp); > > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > > > /* Using S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | > S_IWOTH */ > > desc->lock = open(lockname, O_RDWR | O_CREAT, 0666); > > @@ -106,7 +120,6 @@ nfpu_close(nfpu_desc_t *desc) > > rte_free(desc->nspu); > > close(desc->lock); > > > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", > desc->nfp); > > - unlink(lockname); > > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > return 0; > > } > > -- > > 2.14.3 > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-13 15:31 ` Alejandro Lucero @ 2018-04-17 15:44 ` Alejandro Lucero 2018-04-17 15:54 ` Alejandro Lucero 2018-04-17 15:54 ` [dpdk-dev] " Thomas Monjalon 0 siblings, 2 replies; 22+ messages in thread From: Alejandro Lucero @ 2018-04-17 15:44 UTC (permalink / raw) To: Aaron Conole; +Cc: dev, Adrien Mazarguil, stable, Thomas Monjalon I have seen that VFIO also requires explicitly to set the right permissions for non-root users to VFIO groups under /dev/vfio. I assume then that running OVS or other DPDK apps as non-root is possible, although requiring those explicit permissions changes, and therefore this patch is necessary. Adding stable@ and Thomas for discussing how can this be added to stable DPDK versions even if this is not going to be a patch for current DPDK version. Acked-by: Alejandro Lucero <alejandro.lucero@netronome.com> On Fri, Apr 13, 2018 at 4:31 PM, Alejandro Lucero < alejandro.lucero@netronome.com> wrote: > > > On Fri, Apr 13, 2018 at 2:31 PM, Aaron Conole <aconole@redhat.com> wrote: > >> Alejandro Lucero <alejandro.lucero@netronome.com> writes: >> >> > Again, this patch is correct, but because NFP PMD needs to access >> > /sys/bus/pci/devices/$DEVICE_PCI_STRING/resource$RESOURCE_ID, and >> these files have just >> > read/write accesses for root, I do not know if this is really necessary. >> > >> > Being honest, I have not used a DPDK app with NFP PMD and not being >> root. Does it work >> > with non-root users and other PMDs with same requirements regarding >> sysfs resource files? >> >> We do run as non-root user definitely with Intel PMDs. >> >> I'm not very sure about other vendors, but I think mlx pmd runs as >> non-root user (and it was modified to move off of sysfs for that >> reason[1]). >> >> > It is possible to not rely on sysfs resource files if device is attached > to VFIO, but I think that is a must with UIO. > > > >> I'll continue to push for more information from the testing side to find >> out though. >> >> [1]: http://dpdk.org/ml/archives/dev/2018-February/090586.html >> >> > On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> >> wrote: >> > >> > Currently, the nfp lock files are taken from the global lock file >> > location, which will work when the user is running as root. However, >> > some distributions and applications (notably ovs 2.8+ on RHEL/Fedora) >> > run as a non-root user. >> > >> > Signed-off-by: Aaron Conole <aconole@redhat.com> >> > --- >> > drivers/net/nfp/nfp_nfpu.c | 23 ++++++++++++++++++----- >> > 1 file changed, 18 insertions(+), 5 deletions(-) >> > >> > diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c >> > index 2ed985ff4..ae2e07220 100644 >> > --- a/drivers/net/nfp/nfp_nfpu.c >> > +++ b/drivers/net/nfp/nfp_nfpu.c >> > @@ -18,6 +18,22 @@ >> > #define NFP_CFG_EXP_BAR 7 >> > >> > #define NFP_CFG_EXP_BAR_CFG_BASE 0x30000 >> > +#define NFP_LOCKFILE_PATH_FMT "%s/nfp%d" >> > + >> > +/* get nfp lock file path (/var/lock if root, $HOME otherwise) */ >> > +static void >> > +nspu_get_lockfile_path(char *buffer, int bufsz, nfpu_desc_t *desc) >> > +{ >> > + const char *dir = "/var/lock"; >> > + const char *home_dir = getenv("HOME"); >> > + >> > + if (getuid() != 0 && home_dir != NULL) >> > + dir = home_dir; >> > + >> > + /* use current prefix as file path */ >> > + snprintf(buffer, bufsz, NFP_LOCKFILE_PATH_FMT, dir, >> > + desc->nfp); >> > +} >> > >> > /* There could be other NFP userspace tools using the NSP interface. >> > * Make sure there is no other process using it and locking the >> access for >> > @@ -30,9 +46,7 @@ nspv_aquire_process_lock(nfpu_desc_t *desc) >> > struct flock lock; >> > char lockname[30]; >> > >> > - memset(&lock, 0, sizeof(lock)); >> > - >> > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", >> desc->nfp); >> > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); >> > >> > /* Using S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | >> S_IWOTH */ >> > desc->lock = open(lockname, O_RDWR | O_CREAT, 0666); >> > @@ -106,7 +120,6 @@ nfpu_close(nfpu_desc_t *desc) >> > rte_free(desc->nspu); >> > close(desc->lock); >> > >> > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", >> desc->nfp); >> > - unlink(lockname); >> > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); >> > return 0; >> > } >> > -- >> > 2.14.3 >> > > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-17 15:44 ` Alejandro Lucero @ 2018-04-17 15:54 ` Alejandro Lucero 2018-04-17 19:19 ` Aaron Conole 2018-04-17 15:54 ` [dpdk-dev] " Thomas Monjalon 1 sibling, 1 reply; 22+ messages in thread From: Alejandro Lucero @ 2018-04-17 15:54 UTC (permalink / raw) To: Aaron Conole; +Cc: dev, Adrien Mazarguil, stable, Thomas Monjalon I was just wondering, if device device PCI sysfs resource files or VFIO group /dev files require to change permissions for non-root users, does it not make sense to adjust also /var/lock in the system? On Tue, Apr 17, 2018 at 4:44 PM, Alejandro Lucero < alejandro.lucero@netronome.com> wrote: > I have seen that VFIO also requires explicitly to set the right > permissions for non-root users to VFIO groups under /dev/vfio. > > I assume then that running OVS or other DPDK apps as non-root is possible, > although requiring those explicit permissions changes, and therefore this > patch is necessary. > > Adding stable@ and Thomas for discussing how can this be added to stable > DPDK versions even if this is not going to be a patch for current DPDK > version. > > Acked-by: Alejandro Lucero <alejandro.lucero@netronome.com> > > > On Fri, Apr 13, 2018 at 4:31 PM, Alejandro Lucero < > alejandro.lucero@netronome.com> wrote: > >> >> >> On Fri, Apr 13, 2018 at 2:31 PM, Aaron Conole <aconole@redhat.com> wrote: >> >>> Alejandro Lucero <alejandro.lucero@netronome.com> writes: >>> >>> > Again, this patch is correct, but because NFP PMD needs to access >>> > /sys/bus/pci/devices/$DEVICE_PCI_STRING/resource$RESOURCE_ID, and >>> these files have just >>> > read/write accesses for root, I do not know if this is really >>> necessary. >>> > >>> > Being honest, I have not used a DPDK app with NFP PMD and not being >>> root. Does it work >>> > with non-root users and other PMDs with same requirements regarding >>> sysfs resource files? >>> >>> We do run as non-root user definitely with Intel PMDs. >>> >>> I'm not very sure about other vendors, but I think mlx pmd runs as >>> non-root user (and it was modified to move off of sysfs for that >>> reason[1]). >>> >>> >> It is possible to not rely on sysfs resource files if device is attached >> to VFIO, but I think that is a must with UIO. >> >> >> >>> I'll continue to push for more information from the testing side to find >>> out though. >>> >>> [1]: http://dpdk.org/ml/archives/dev/2018-February/090586.html >>> >>> > On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> >>> wrote: >>> > >>> > Currently, the nfp lock files are taken from the global lock file >>> > location, which will work when the user is running as root. However, >>> > some distributions and applications (notably ovs 2.8+ on RHEL/Fedora) >>> > run as a non-root user. >>> > >>> > Signed-off-by: Aaron Conole <aconole@redhat.com> >>> > --- >>> > drivers/net/nfp/nfp_nfpu.c | 23 ++++++++++++++++++----- >>> > 1 file changed, 18 insertions(+), 5 deletions(-) >>> > >>> > diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c >>> > index 2ed985ff4..ae2e07220 100644 >>> > --- a/drivers/net/nfp/nfp_nfpu.c >>> > +++ b/drivers/net/nfp/nfp_nfpu.c >>> > @@ -18,6 +18,22 @@ >>> > #define NFP_CFG_EXP_BAR 7 >>> > >>> > #define NFP_CFG_EXP_BAR_CFG_BASE 0x30000 >>> > +#define NFP_LOCKFILE_PATH_FMT "%s/nfp%d" >>> > + >>> > +/* get nfp lock file path (/var/lock if root, $HOME otherwise) */ >>> > +static void >>> > +nspu_get_lockfile_path(char *buffer, int bufsz, nfpu_desc_t *desc) >>> > +{ >>> > + const char *dir = "/var/lock"; >>> > + const char *home_dir = getenv("HOME"); >>> > + >>> > + if (getuid() != 0 && home_dir != NULL) >>> > + dir = home_dir; >>> > + >>> > + /* use current prefix as file path */ >>> > + snprintf(buffer, bufsz, NFP_LOCKFILE_PATH_FMT, dir, >>> > + desc->nfp); >>> > +} >>> > >>> > /* There could be other NFP userspace tools using the NSP interface. >>> > * Make sure there is no other process using it and locking the >>> access for >>> > @@ -30,9 +46,7 @@ nspv_aquire_process_lock(nfpu_desc_t *desc) >>> > struct flock lock; >>> > char lockname[30]; >>> > >>> > - memset(&lock, 0, sizeof(lock)); >>> > - >>> > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", >>> desc->nfp); >>> > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); >>> > >>> > /* Using S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | >>> S_IWOTH */ >>> > desc->lock = open(lockname, O_RDWR | O_CREAT, 0666); >>> > @@ -106,7 +120,6 @@ nfpu_close(nfpu_desc_t *desc) >>> > rte_free(desc->nspu); >>> > close(desc->lock); >>> > >>> > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", >>> desc->nfp); >>> > - unlink(lockname); >>> > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); >>> > return 0; >>> > } >>> > -- >>> > 2.14.3 >>> >> >> > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-17 15:54 ` Alejandro Lucero @ 2018-04-17 19:19 ` Aaron Conole 2018-04-18 10:53 ` Alejandro Lucero 0 siblings, 1 reply; 22+ messages in thread From: Aaron Conole @ 2018-04-17 19:19 UTC (permalink / raw) To: Alejandro Lucero; +Cc: dev, Adrien Mazarguil, stable, Thomas Monjalon Alejandro Lucero <alejandro.lucero@netronome.com> writes: > I was just wondering, if device device PCI sysfs resource files or VFIO group /dev files require to change > permissions for non-root users, does it not make sense to adjust also /var/lock in the system? For the /dev, we use udev rules - so the correct individual vfio device files get assigned the correct permissions. No such mechanism exists for /var/lock as far as I can tell. Ex. see: https://github.com/openvswitch/ovs/blob/master/rhel/usr_lib_udev_rules.d_91-vfio.rules Maybe something similar exists that we could use to generate the lock file automatically? > On Tue, Apr 17, 2018 at 4:44 PM, Alejandro Lucero <alejandro.lucero@netronome.com> wrote: > > I have seen that VFIO also requires explicitly to set the right permissions for non-root users to VFIO > groups under /dev/vfio. > > I assume then that running OVS or other DPDK apps as non-root is possible, although requiring > those explicit permissions changes, and therefore this patch is necessary. > > Adding stable@ and Thomas for discussing how can this be added to stable DPDK versions even if > this is not going to be a patch for current DPDK version. > > Acked-by: Alejandro Lucero <alejandro.lucero@netronome.com> > > On Fri, Apr 13, 2018 at 4:31 PM, Alejandro Lucero <alejandro.lucero@netronome.com> wrote: > > On Fri, Apr 13, 2018 at 2:31 PM, Aaron Conole <aconole@redhat.com> wrote: > > Alejandro Lucero <alejandro.lucero@netronome.com> writes: > > > Again, this patch is correct, but because NFP PMD needs to access > > /sys/bus/pci/devices/$DEVICE_PCI_STRING/resource$RESOURCE_ID, and these files have > just > > read/write accesses for root, I do not know if this is really necessary. > > > > Being honest, I have not used a DPDK app with NFP PMD and not being root. Does it > work > > with non-root users and other PMDs with same requirements regarding sysfs resource > files? > > We do run as non-root user definitely with Intel PMDs. > > I'm not very sure about other vendors, but I think mlx pmd runs as > non-root user (and it was modified to move off of sysfs for that > reason[1]). > > It is possible to not rely on sysfs resource files if device is attached to VFIO, but I think that is a > must with UIO. > > > I'll continue to push for more information from the testing side to find > out though. > > [1]: http://dpdk.org/ml/archives/dev/2018-February/090586.html > > > On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> wrote: > > > > Currently, the nfp lock files are taken from the global lock file > > location, which will work when the user is running as root. However, > > some distributions and applications (notably ovs 2.8+ on RHEL/Fedora) > > run as a non-root user. > > > > Signed-off-by: Aaron Conole <aconole@redhat.com> > > --- > > drivers/net/nfp/nfp_nfpu.c | 23 ++++++++++++++++++----- > > 1 file changed, 18 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c > > index 2ed985ff4..ae2e07220 100644 > > --- a/drivers/net/nfp/nfp_nfpu.c > > +++ b/drivers/net/nfp/nfp_nfpu.c > > @@ -18,6 +18,22 @@ > > #define NFP_CFG_EXP_BAR 7 > > > > #define NFP_CFG_EXP_BAR_CFG_BASE 0x30000 > > +#define NFP_LOCKFILE_PATH_FMT "%s/nfp%d" > > + > > +/* get nfp lock file path (/var/lock if root, $HOME otherwise) */ > > +static void > > +nspu_get_lockfile_path(char *buffer, int bufsz, nfpu_desc_t *desc) > > +{ > > + const char *dir = "/var/lock"; > > + const char *home_dir = getenv("HOME"); > > + > > + if (getuid() != 0 && home_dir != NULL) > > + dir = home_dir; > > + > > + /* use current prefix as file path */ > > + snprintf(buffer, bufsz, NFP_LOCKFILE_PATH_FMT, dir, > > + desc->nfp); > > +} > > > > /* There could be other NFP userspace tools using the NSP interface. > > * Make sure there is no other process using it and locking the access for > > @@ -30,9 +46,7 @@ nspv_aquire_process_lock(nfpu_desc_t *desc) > > struct flock lock; > > char lockname[30]; > > > > - memset(&lock, 0, sizeof(lock)); > > - > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); > > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > > > /* Using S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH */ > > desc->lock = open(lockname, O_RDWR | O_CREAT, 0666); > > @@ -106,7 +120,6 @@ nfpu_close(nfpu_desc_t *desc) > > rte_free(desc->nspu); > > close(desc->lock); > > > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); > > - unlink(lockname); > > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > return 0; > > } > > -- > > 2.14.3 ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-17 19:19 ` Aaron Conole @ 2018-04-18 10:53 ` Alejandro Lucero 2018-04-18 12:32 ` Aaron Conole 0 siblings, 1 reply; 22+ messages in thread From: Alejandro Lucero @ 2018-04-18 10:53 UTC (permalink / raw) To: Aaron Conole; +Cc: dev, Adrien Mazarguil, stable, Thomas Monjalon On Tue, Apr 17, 2018 at 8:19 PM, Aaron Conole <aconole@redhat.com> wrote: > Alejandro Lucero <alejandro.lucero@netronome.com> writes: > > > I was just wondering, if device device PCI sysfs resource files or VFIO > group /dev files require to change > > permissions for non-root users, does it not make sense to adjust also > /var/lock in the system? > > For the /dev, we use udev rules - so the correct individual vfio device > files get assigned the correct permissions. No such mechanism exists > for /var/lock as far as I can tell. > > Ex. see: > > https://github.com/openvswitch/ovs/blob/master/ > rhel/usr_lib_udev_rules.d_91-vfio.rules > > Maybe something similar exists that we could use to generate the lock > file automatically? > What about /sysfs/bus/pci/device/$PCI_DEV/resource file? Is RH forcing OVS DPDK to only work if the host has IOMMU support? > > > On Tue, Apr 17, 2018 at 4:44 PM, Alejandro Lucero < > alejandro.lucero@netronome.com> wrote: > > > > I have seen that VFIO also requires explicitly to set the right > permissions for non-root users to VFIO > > groups under /dev/vfio. > > > > I assume then that running OVS or other DPDK apps as non-root is > possible, although requiring > > those explicit permissions changes, and therefore this patch is > necessary. > > > > Adding stable@ and Thomas for discussing how can this be added to > stable DPDK versions even if > > this is not going to be a patch for current DPDK version. > > > > Acked-by: Alejandro Lucero <alejandro.lucero@netronome.com> > > > > On Fri, Apr 13, 2018 at 4:31 PM, Alejandro Lucero < > alejandro.lucero@netronome.com> wrote: > > > > On Fri, Apr 13, 2018 at 2:31 PM, Aaron Conole <aconole@redhat.com> > wrote: > > > > Alejandro Lucero <alejandro.lucero@netronome.com> writes: > > > > > Again, this patch is correct, but because NFP PMD needs to access > > > /sys/bus/pci/devices/$DEVICE_PCI_STRING/resource$RESOURCE_ID, and > these files have > > just > > > read/write accesses for root, I do not know if this is really > necessary. > > > > > > Being honest, I have not used a DPDK app with NFP PMD and not being > root. Does it > > work > > > with non-root users and other PMDs with same requirements regarding > sysfs resource > > files? > > > > We do run as non-root user definitely with Intel PMDs. > > > > I'm not very sure about other vendors, but I think mlx pmd runs as > > non-root user (and it was modified to move off of sysfs for that > > reason[1]). > > > > It is possible to not rely on sysfs resource files if device is > attached to VFIO, but I think that is a > > must with UIO. > > > > > > I'll continue to push for more information from the testing side to find > > out though. > > > > [1]: http://dpdk.org/ml/archives/dev/2018-February/090586.html > > > > > On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> > wrote: > > > > > > Currently, the nfp lock files are taken from the global lock file > > > location, which will work when the user is running as root. However, > > > some distributions and applications (notably ovs 2.8+ on RHEL/Fedora) > > > run as a non-root user. > > > > > > Signed-off-by: Aaron Conole <aconole@redhat.com> > > > --- > > > drivers/net/nfp/nfp_nfpu.c | 23 ++++++++++++++++++----- > > > 1 file changed, 18 insertions(+), 5 deletions(-) > > > > > > diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c > > > index 2ed985ff4..ae2e07220 100644 > > > --- a/drivers/net/nfp/nfp_nfpu.c > > > +++ b/drivers/net/nfp/nfp_nfpu.c > > > @@ -18,6 +18,22 @@ > > > #define NFP_CFG_EXP_BAR 7 > > > > > > #define NFP_CFG_EXP_BAR_CFG_BASE 0x30000 > > > +#define NFP_LOCKFILE_PATH_FMT "%s/nfp%d" > > > + > > > +/* get nfp lock file path (/var/lock if root, $HOME otherwise) */ > > > +static void > > > +nspu_get_lockfile_path(char *buffer, int bufsz, nfpu_desc_t *desc) > > > +{ > > > + const char *dir = "/var/lock"; > > > + const char *home_dir = getenv("HOME"); > > > + > > > + if (getuid() != 0 && home_dir != NULL) > > > + dir = home_dir; > > > + > > > + /* use current prefix as file path */ > > > + snprintf(buffer, bufsz, NFP_LOCKFILE_PATH_FMT, dir, > > > + desc->nfp); > > > +} > > > > > > /* There could be other NFP userspace tools using the NSP interface. > > > * Make sure there is no other process using it and locking the > access for > > > @@ -30,9 +46,7 @@ nspv_aquire_process_lock(nfpu_desc_t *desc) > > > struct flock lock; > > > char lockname[30]; > > > > > > - memset(&lock, 0, sizeof(lock)); > > > - > > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", > desc->nfp); > > > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > > > > > /* Using S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | > S_IWOTH */ > > > desc->lock = open(lockname, O_RDWR | O_CREAT, 0666); > > > @@ -106,7 +120,6 @@ nfpu_close(nfpu_desc_t *desc) > > > rte_free(desc->nspu); > > > close(desc->lock); > > > > > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", > desc->nfp); > > > - unlink(lockname); > > > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > > return 0; > > > } > > > -- > > > 2.14.3 > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-18 10:53 ` Alejandro Lucero @ 2018-04-18 12:32 ` Aaron Conole 2018-04-19 6:05 ` Alejandro Lucero 0 siblings, 1 reply; 22+ messages in thread From: Aaron Conole @ 2018-04-18 12:32 UTC (permalink / raw) To: Alejandro Lucero; +Cc: dev, Adrien Mazarguil, stable, Thomas Monjalon Alejandro Lucero <alejandro.lucero@netronome.com> writes: > On Tue, Apr 17, 2018 at 8:19 PM, Aaron Conole <aconole@redhat.com> wrote: > > Alejandro Lucero <alejandro.lucero@netronome.com> writes: > > > I was just wondering, if device device PCI sysfs resource files or VFIO group /dev files > require to change > > permissions for non-root users, does it not make sense to adjust also /var/lock in the > system? > > For the /dev, we use udev rules - so the correct individual vfio device > files get assigned the correct permissions. No such mechanism exists > for /var/lock as far as I can tell. > > Ex. see: > > https://github.com/openvswitch/ovs/blob/master/rhel/usr_lib_udev_rules.d_91-vfio.rules > > > Maybe something similar exists that we could use to generate the lock > file automatically? > > What about /sysfs/bus/pci/device/$PCI_DEV/resource file? > > Is RH forcing OVS DPDK to only work if the host has IOMMU support? Yes. > > On Tue, Apr 17, 2018 at 4:44 PM, Alejandro Lucero > <alejandro.lucero@netronome.com> wrote: > > > > I have seen that VFIO also requires explicitly to set the right permissions for non-root > users to VFIO > > groups under /dev/vfio. > > > > I assume then that running OVS or other DPDK apps as non-root is possible, > although requiring > > those explicit permissions changes, and therefore this patch is necessary. > > > > Adding stable@ and Thomas for discussing how can this be added to stable DPDK > versions even if > > this is not going to be a patch for current DPDK version. > > > > Acked-by: Alejandro Lucero <alejandro.lucero@netronome.com> > > > > On Fri, Apr 13, 2018 at 4:31 PM, Alejandro Lucero > <alejandro.lucero@netronome.com> wrote: > > > > On Fri, Apr 13, 2018 at 2:31 PM, Aaron Conole <aconole@redhat.com> wrote: > > > > Alejandro Lucero <alejandro.lucero@netronome.com> writes: > > > > > Again, this patch is correct, but because NFP PMD needs to access > > > /sys/bus/pci/devices/$DEVICE_PCI_STRING/resource$RESOURCE_ID, and these files > have > > just > > > read/write accesses for root, I do not know if this is really necessary. > > > > > > Being honest, I have not used a DPDK app with NFP PMD and not being root. Does > it > > work > > > with non-root users and other PMDs with same requirements regarding sysfs > resource > > files? > > > > We do run as non-root user definitely with Intel PMDs. > > > > I'm not very sure about other vendors, but I think mlx pmd runs as > > non-root user (and it was modified to move off of sysfs for that > > reason[1]). > > > > It is possible to not rely on sysfs resource files if device is attached to VFIO, but I > think that is a > > must with UIO. > > > > > > I'll continue to push for more information from the testing side to find > > out though. > > > > [1]: http://dpdk.org/ml/archives/dev/2018-February/090586.html > > > > > On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> wrote: > > > > > > Currently, the nfp lock files are taken from the global lock file > > > location, which will work when the user is running as root. However, > > > some distributions and applications (notably ovs 2.8+ on RHEL/Fedora) > > > run as a non-root user. > > > > > > Signed-off-by: Aaron Conole <aconole@redhat.com> > > > --- > > > drivers/net/nfp/nfp_nfpu.c | 23 ++++++++++++++++++----- > > > 1 file changed, 18 insertions(+), 5 deletions(-) > > > > > > diff --git a/drivers/net/nfp/nfp_nfpu.c b/drivers/net/nfp/nfp_nfpu.c > > > index 2ed985ff4..ae2e07220 100644 > > > --- a/drivers/net/nfp/nfp_nfpu.c > > > +++ b/drivers/net/nfp/nfp_nfpu.c > > > @@ -18,6 +18,22 @@ > > > #define NFP_CFG_EXP_BAR 7 > > > > > > #define NFP_CFG_EXP_BAR_CFG_BASE 0x30000 > > > +#define NFP_LOCKFILE_PATH_FMT "%s/nfp%d" > > > + > > > +/* get nfp lock file path (/var/lock if root, $HOME otherwise) */ > > > +static void > > > +nspu_get_lockfile_path(char *buffer, int bufsz, nfpu_desc_t *desc) > > > +{ > > > + const char *dir = "/var/lock"; > > > + const char *home_dir = getenv("HOME"); > > > + > > > + if (getuid() != 0 && home_dir != NULL) > > > + dir = home_dir; > > > + > > > + /* use current prefix as file path */ > > > + snprintf(buffer, bufsz, NFP_LOCKFILE_PATH_FMT, dir, > > > + desc->nfp); > > > +} > > > > > > /* There could be other NFP userspace tools using the NSP interface. > > > * Make sure there is no other process using it and locking the access for > > > @@ -30,9 +46,7 @@ nspv_aquire_process_lock(nfpu_desc_t *desc) > > > struct flock lock; > > > char lockname[30]; > > > > > > - memset(&lock, 0, sizeof(lock)); > > > - > > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); > > > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > > > > > /* Using S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH */ > > > desc->lock = open(lockname, O_RDWR | O_CREAT, 0666); > > > @@ -106,7 +120,6 @@ nfpu_close(nfpu_desc_t *desc) > > > rte_free(desc->nspu); > > > close(desc->lock); > > > > > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", desc->nfp); > > > - unlink(lockname); > > > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > > return 0; > > > } > > > -- > > > 2.14.3 ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-18 12:32 ` Aaron Conole @ 2018-04-19 6:05 ` Alejandro Lucero 2018-04-20 14:12 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit 0 siblings, 1 reply; 22+ messages in thread From: Alejandro Lucero @ 2018-04-19 6:05 UTC (permalink / raw) To: Aaron Conole; +Cc: dev, Adrien Mazarguil, stable, Thomas Monjalon On Wed, Apr 18, 2018 at 1:32 PM, Aaron Conole <aconole@redhat.com> wrote: > Alejandro Lucero <alejandro.lucero@netronome.com> writes: > > > On Tue, Apr 17, 2018 at 8:19 PM, Aaron Conole <aconole@redhat.com> > wrote: > > > > Alejandro Lucero <alejandro.lucero@netronome.com> writes: > > > > > I was just wondering, if device device PCI sysfs resource files or > VFIO group /dev files > > require to change > > > permissions for non-root users, does it not make sense to adjust also > /var/lock in the > > system? > > > > For the /dev, we use udev rules - so the correct individual vfio device > > files get assigned the correct permissions. No such mechanism exists > > for /var/lock as far as I can tell. > > > > Ex. see: > > > > https://github.com/openvswitch/ovs/blob/master/ > rhel/usr_lib_udev_rules.d_91-vfio.rules > > > > > > Maybe something similar exists that we could use to generate the lock > > file automatically? > > > > What about /sysfs/bus/pci/device/$PCI_DEV/resource file? > > > > Is RH forcing OVS DPDK to only work if the host has IOMMU support? > > Yes. > Ok then. It makes sense now to apply this patch to stable versions. Acked-by: Alejandro Lucero <alejandro.lucero@netronome.com> > > > > On Tue, Apr 17, 2018 at 4:44 PM, Alejandro Lucero > > <alejandro.lucero@netronome.com> wrote: > > > > > > I have seen that VFIO also requires explicitly to set the right > permissions for non-root > > users to VFIO > > > groups under /dev/vfio. > > > > > > I assume then that running OVS or other DPDK apps as non-root is > possible, > > although requiring > > > those explicit permissions changes, and therefore this patch is > necessary. > > > > > > Adding stable@ and Thomas for discussing how can this be added to > stable DPDK > > versions even if > > > this is not going to be a patch for current DPDK version. > > > > > > Acked-by: Alejandro Lucero <alejandro.lucero@netronome.com> > > > > > > On Fri, Apr 13, 2018 at 4:31 PM, Alejandro Lucero > > <alejandro.lucero@netronome.com> wrote: > > > > > > On Fri, Apr 13, 2018 at 2:31 PM, Aaron Conole <aconole@redhat.com> > wrote: > > > > > > Alejandro Lucero <alejandro.lucero@netronome.com> writes: > > > > > > > Again, this patch is correct, but because NFP PMD needs to access > > > > /sys/bus/pci/devices/$DEVICE_PCI_STRING/resource$RESOURCE_ID, and > these files > > have > > > just > > > > read/write accesses for root, I do not know if this is really > necessary. > > > > > > > > Being honest, I have not used a DPDK app with NFP PMD and not > being root. Does > > it > > > work > > > > with non-root users and other PMDs with same requirements > regarding sysfs > > resource > > > files? > > > > > > We do run as non-root user definitely with Intel PMDs. > > > > > > I'm not very sure about other vendors, but I think mlx pmd runs as > > > non-root user (and it was modified to move off of sysfs for that > > > reason[1]). > > > > > > It is possible to not rely on sysfs resource files if device is > attached to VFIO, but I > > think that is a > > > must with UIO. > > > > > > > > > I'll continue to push for more information from the testing side to > find > > > out though. > > > > > > [1]: http://dpdk.org/ml/archives/dev/2018-February/090586.html > > > > > > > On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> > wrote: > > > > > > > > Currently, the nfp lock files are taken from the global lock file > > > > location, which will work when the user is running as root. > However, > > > > some distributions and applications (notably ovs 2.8+ on > RHEL/Fedora) > > > > run as a non-root user. > > > > > > > > Signed-off-by: Aaron Conole <aconole@redhat.com> > > > > --- > > > > drivers/net/nfp/nfp_nfpu.c | 23 ++++++++++++++++++----- > > > > 1 file changed, 18 insertions(+), 5 deletions(-) > > > > > > > > diff --git a/drivers/net/nfp/nfp_nfpu.c > b/drivers/net/nfp/nfp_nfpu.c > > > > index 2ed985ff4..ae2e07220 100644 > > > > --- a/drivers/net/nfp/nfp_nfpu.c > > > > +++ b/drivers/net/nfp/nfp_nfpu.c > > > > @@ -18,6 +18,22 @@ > > > > #define NFP_CFG_EXP_BAR 7 > > > > > > > > #define NFP_CFG_EXP_BAR_CFG_BASE 0x30000 > > > > +#define NFP_LOCKFILE_PATH_FMT "%s/nfp%d" > > > > + > > > > +/* get nfp lock file path (/var/lock if root, $HOME otherwise) */ > > > > +static void > > > > +nspu_get_lockfile_path(char *buffer, int bufsz, nfpu_desc_t > *desc) > > > > +{ > > > > + const char *dir = "/var/lock"; > > > > + const char *home_dir = getenv("HOME"); > > > > + > > > > + if (getuid() != 0 && home_dir != NULL) > > > > + dir = home_dir; > > > > + > > > > + /* use current prefix as file path */ > > > > + snprintf(buffer, bufsz, NFP_LOCKFILE_PATH_FMT, dir, > > > > + desc->nfp); > > > > +} > > > > > > > > /* There could be other NFP userspace tools using the NSP > interface. > > > > * Make sure there is no other process using it and locking the > access for > > > > @@ -30,9 +46,7 @@ nspv_aquire_process_lock(nfpu_desc_t *desc) > > > > struct flock lock; > > > > char lockname[30]; > > > > > > > > - memset(&lock, 0, sizeof(lock)); > > > > - > > > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", > desc->nfp); > > > > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > > > > > > > /* Using S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH > | S_IWOTH */ > > > > desc->lock = open(lockname, O_RDWR | O_CREAT, 0666); > > > > @@ -106,7 +120,6 @@ nfpu_close(nfpu_desc_t *desc) > > > > rte_free(desc->nspu); > > > > close(desc->lock); > > > > > > > > - snprintf(lockname, sizeof(lockname), "/var/lock/nfp%d", > desc->nfp); > > > > - unlink(lockname); > > > > + nspu_get_lockfile_path(lockname, sizeof(lockname), desc); > > > > return 0; > > > > } > > > > -- > > > > 2.14.3 > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [RFC 2/2] nfp: allow for non-root user 2018-04-19 6:05 ` Alejandro Lucero @ 2018-04-20 14:12 ` Ferruh Yigit 2018-04-20 14:56 ` Aaron Conole 0 siblings, 1 reply; 22+ messages in thread From: Ferruh Yigit @ 2018-04-20 14:12 UTC (permalink / raw) To: Alejandro Lucero, Aaron Conole Cc: dev, Adrien Mazarguil, stable, Thomas Monjalon On 4/19/2018 7:05 AM, Alejandro Lucero wrote: > On Wed, Apr 18, 2018 at 1:32 PM, Aaron Conole <aconole@redhat.com> wrote: > >> Alejandro Lucero <alejandro.lucero@netronome.com> writes: >> >>> On Tue, Apr 17, 2018 at 8:19 PM, Aaron Conole <aconole@redhat.com> >> wrote: >>> >>> Alejandro Lucero <alejandro.lucero@netronome.com> writes: >>> >>> > I was just wondering, if device device PCI sysfs resource files or >> VFIO group /dev files >>> require to change >>> > permissions for non-root users, does it not make sense to adjust also >> /var/lock in the >>> system? >>> >>> For the /dev, we use udev rules - so the correct individual vfio device >>> files get assigned the correct permissions. No such mechanism exists >>> for /var/lock as far as I can tell. >>> >>> Ex. see: >>> >>> https://github.com/openvswitch/ovs/blob/master/ >> rhel/usr_lib_udev_rules.d_91-vfio.rules >>> >>> >>> Maybe something similar exists that we could use to generate the lock >>> file automatically? >>> >>> What about /sysfs/bus/pci/device/$PCI_DEV/resource file? >>> >>> Is RH forcing OVS DPDK to only work if the host has IOMMU support? >> >> Yes. >> > > Ok then. It makes sense now to apply this patch to stable versions. > > Acked-by: Alejandro Lucero <alejandro.lucero@netronome.com> Since the target is the stable tree, I will drop them from patchwork as not applicable. Can you please send v1 of the patch to the stable mail list, it can be good idea to cc stable maintainers as well. ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [RFC 2/2] nfp: allow for non-root user 2018-04-20 14:12 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit @ 2018-04-20 14:56 ` Aaron Conole 0 siblings, 0 replies; 22+ messages in thread From: Aaron Conole @ 2018-04-20 14:56 UTC (permalink / raw) To: Ferruh Yigit Cc: Alejandro Lucero, dev, Adrien Mazarguil, stable, Thomas Monjalon Ferruh Yigit <ferruh.yigit@intel.com> writes: > On 4/19/2018 7:05 AM, Alejandro Lucero wrote: >> On Wed, Apr 18, 2018 at 1:32 PM, Aaron Conole <aconole@redhat.com> wrote: >> >>> Alejandro Lucero <alejandro.lucero@netronome.com> writes: >>> >>>> On Tue, Apr 17, 2018 at 8:19 PM, Aaron Conole <aconole@redhat.com> >>> wrote: >>>> >>>> Alejandro Lucero <alejandro.lucero@netronome.com> writes: >>>> >>>> > I was just wondering, if device device PCI sysfs resource files or >>> VFIO group /dev files >>>> require to change >>>> > permissions for non-root users, does it not make sense to adjust also >>> /var/lock in the >>>> system? >>>> >>>> For the /dev, we use udev rules - so the correct individual vfio device >>>> files get assigned the correct permissions. No such mechanism exists >>>> for /var/lock as far as I can tell. >>>> >>>> Ex. see: >>>> >>>> https://github.com/openvswitch/ovs/blob/master/ >>> rhel/usr_lib_udev_rules.d_91-vfio.rules >>>> >>>> >>>> Maybe something similar exists that we could use to generate the lock >>>> file automatically? >>>> >>>> What about /sysfs/bus/pci/device/$PCI_DEV/resource file? >>>> >>>> Is RH forcing OVS DPDK to only work if the host has IOMMU support? >>> >>> Yes. >>> >> >> Ok then. It makes sense now to apply this patch to stable versions. >> >> Acked-by: Alejandro Lucero <alejandro.lucero@netronome.com> > > Since the target is the stable tree, I will drop them from patchwork as not > applicable. > > Can you please send v1 of the patch to the stable mail list, it can be good idea > to cc stable maintainers as well. Will do. I'll spin into a proper series and submit next week. Sorry for the extra noise, Ferruh. ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-17 15:44 ` Alejandro Lucero 2018-04-17 15:54 ` Alejandro Lucero @ 2018-04-17 15:54 ` Thomas Monjalon 2018-04-17 16:24 ` Alejandro Lucero 1 sibling, 1 reply; 22+ messages in thread From: Thomas Monjalon @ 2018-04-17 15:54 UTC (permalink / raw) To: Alejandro Lucero; +Cc: Aaron Conole, dev, Adrien Mazarguil, stable 17/04/2018 17:44, Alejandro Lucero: > Adding stable@ and Thomas for discussing how can this be added to stable > DPDK versions even if this is not going to be a patch for current DPDK > version. I don't understand. This patch won't enter in 18.05? Why do you think this patch is candidate for stable but not master? ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-17 15:54 ` [dpdk-dev] " Thomas Monjalon @ 2018-04-17 16:24 ` Alejandro Lucero 2018-04-17 19:06 ` Thomas Monjalon 0 siblings, 1 reply; 22+ messages in thread From: Alejandro Lucero @ 2018-04-17 16:24 UTC (permalink / raw) To: Thomas Monjalon; +Cc: Aaron Conole, dev, Adrien Mazarguil, stable On Tue, Apr 17, 2018 at 4:54 PM, Thomas Monjalon <thomas@monjalon.net> wrote: > 17/04/2018 17:44, Alejandro Lucero: > > Adding stable@ and Thomas for discussing how can this be added to stable > > DPDK versions even if this is not going to be a patch for current DPDK > > version. > > I don't understand. > This patch won't enter in 18.05? > Why do you think this patch is candidate for stable but not master? > > > Because all that code has been removed between 18.02 and 18.05: http://dpdk.org/ml/archives/dev/2018-March/093655.html I guess this had not happen yet, and stable versions only pull patches from vanilla. Am I right? ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 2/2] nfp: allow for non-root user 2018-04-17 16:24 ` Alejandro Lucero @ 2018-04-17 19:06 ` Thomas Monjalon 0 siblings, 0 replies; 22+ messages in thread From: Thomas Monjalon @ 2018-04-17 19:06 UTC (permalink / raw) To: Alejandro Lucero; +Cc: Aaron Conole, dev, Adrien Mazarguil, stable 17/04/2018 18:24, Alejandro Lucero: > On Tue, Apr 17, 2018 at 4:54 PM, Thomas Monjalon <thomas@monjalon.net> > wrote: > > > 17/04/2018 17:44, Alejandro Lucero: > > > Adding stable@ and Thomas for discussing how can this be added to stable > > > DPDK versions even if this is not going to be a patch for current DPDK > > > version. > > > > I don't understand. > > This patch won't enter in 18.05? > > Why do you think this patch is candidate for stable but not master? > > > Because all that code has been removed between 18.02 and 18.05: > > http://dpdk.org/ml/archives/dev/2018-March/093655.html > > I guess this had not happen yet, and stable versions only pull patches from > vanilla. Am I right? Yes patches are cherry-picked from master. But when the backport is too much difficult, a patch can be sent directly to stable@dpdk.org. I don't know whether it already happened to fix a removed code. You need to make sure that the maintainers of stable branches will pick it. There is no special process, it's all a matter of communication :) ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 0/2] nfp driver fixes 2018-04-12 22:22 [dpdk-dev] [RFC 0/2] nfp driver fixes Aaron Conole 2018-04-12 22:22 ` [dpdk-dev] [RFC 1/2] nfp: unlink the appropriate lock file Aaron Conole 2018-04-12 22:22 ` [dpdk-dev] [RFC 2/2] nfp: allow for non-root user Aaron Conole @ 2018-04-13 7:26 ` Alejandro Lucero 2018-04-13 13:23 ` Aaron Conole 2 siblings, 1 reply; 22+ messages in thread From: Alejandro Lucero @ 2018-04-13 7:26 UTC (permalink / raw) To: Aaron Conole; +Cc: dev Hi Aaron, Thanks for this patches. I'm afraid these are not applicable for current NFP driver after commit "net/nfp: add NFP CPP support <http://dpdk.org/browse/next/dpdk-next-net/commit/?id=c21e3c53870799c379f8c2ced940e757e8820a5f> " which has been accepted in dpdk-net-next. However, those could be valid for stable versions. I have comments on both patches. On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> wrote: > Two fixes, one which is fairly obvious (1/2), the other which may > allow support of non-root users. These patches are only compile tested > which is why they are submitted as RFC. After a proper test, will > resubmit them as PATCH (with any suggested / recommended changes). > > Aaron Conole (2): > nfp: unlink the appropriate lock file > nfp: allow for non-root user > > drivers/net/nfp/nfp_nfpu.c | 25 +++++++++++++++++++++---- > 1 file changed, 21 insertions(+), 4 deletions(-) > > -- > 2.14.3 > > ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 0/2] nfp driver fixes 2018-04-13 7:26 ` [dpdk-dev] [RFC 0/2] nfp driver fixes Alejandro Lucero @ 2018-04-13 13:23 ` Aaron Conole 2018-04-13 15:36 ` Alejandro Lucero 0 siblings, 1 reply; 22+ messages in thread From: Aaron Conole @ 2018-04-13 13:23 UTC (permalink / raw) To: Alejandro Lucero; +Cc: dev, Eelco Chaudron, Pablo Cascon Alejandro Lucero <alejandro.lucero@netronome.com> writes: > Hi Aaron, > > Thanks for this patches. > > I'm afraid these are not applicable for current NFP driver after commit Okay. > "net/nfp: add NFP CPP support" > > which has been accepted in dpdk-net-next. I think nfp_acquire_process_lock() can be modified as I did in 2/2, but I noticed that there's some reliance on various sysfs files (and I think you point this out in your response to 2/2 as well) and that may be problematic for us with ovs2.8+. I'll do some more digging. Thanks Alejandro! > However, those could be valid for stable versions. I have comments on both patches. Cool. As I noted, I haven't tested them yet, but once I get time to test them I will pull in any feedback and resubmit. I guess if I do, they should really just be for stable fixes? Not sure how that would work. > On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> wrote: > > Two fixes, one which is fairly obvious (1/2), the other which may > allow support of non-root users. These patches are only compile tested > which is why they are submitted as RFC. After a proper test, will > resubmit them as PATCH (with any suggested / recommended changes). > > Aaron Conole (2): > nfp: unlink the appropriate lock file > nfp: allow for non-root user > > drivers/net/nfp/nfp_nfpu.c | 25 +++++++++++++++++++++---- > 1 file changed, 21 insertions(+), 4 deletions(-) > > -- > 2.14.3 ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [dpdk-dev] [RFC 0/2] nfp driver fixes 2018-04-13 13:23 ` Aaron Conole @ 2018-04-13 15:36 ` Alejandro Lucero 0 siblings, 0 replies; 22+ messages in thread From: Alejandro Lucero @ 2018-04-13 15:36 UTC (permalink / raw) To: Aaron Conole; +Cc: dev, Eelco Chaudron, Pablo Cascon, stable On Fri, Apr 13, 2018 at 2:23 PM, Aaron Conole <aconole@redhat.com> wrote: > Alejandro Lucero <alejandro.lucero@netronome.com> writes: > > > Hi Aaron, > > > > Thanks for this patches. > > > > I'm afraid these are not applicable for current NFP driver after commit > > Okay. > > > "net/nfp: add NFP CPP support" > > > > which has been accepted in dpdk-net-next. > > I think nfp_acquire_process_lock() can be modified as I did in 2/2, but > I noticed that there's some reliance on various sysfs files (and I think > you point this out in your response to 2/2 as well) and that may be > problematic for us with ovs2.8+. I'll do some more digging. > If OVS always relies on VFIO, then it is fine and this patch makes sense. > > Thanks Alejandro! > > > However, those could be valid for stable versions. I have comments on > both patches. > > Cool. As I noted, I haven't tested them yet, but once I get time to > test them I will pull in any feedback and resubmit. I guess if I do, > they should really just be for stable fixes? Not sure how that would > work. > > Not sure how this needs to be done. Stable versions pull from main branch just for bug fixing applied patches. Maybe it is worth to discuss. Adding stable email. > > On Fri, Apr 13, 2018 at 12:22 AM, Aaron Conole <aconole@redhat.com> > wrote: > > > > Two fixes, one which is fairly obvious (1/2), the other which may > > allow support of non-root users. These patches are only compile tested > > which is why they are submitted as RFC. After a proper test, will > > resubmit them as PATCH (with any suggested / recommended changes). > > > > Aaron Conole (2): > > nfp: unlink the appropriate lock file > > nfp: allow for non-root user > > > > drivers/net/nfp/nfp_nfpu.c | 25 +++++++++++++++++++++---- > > 1 file changed, 21 insertions(+), 4 deletions(-) > > > > -- > > 2.14.3 > ^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2018-04-20 14:56 UTC | newest] Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-04-12 22:22 [dpdk-dev] [RFC 0/2] nfp driver fixes Aaron Conole 2018-04-12 22:22 ` [dpdk-dev] [RFC 1/2] nfp: unlink the appropriate lock file Aaron Conole 2018-04-13 7:31 ` Alejandro Lucero 2018-04-13 13:24 ` Aaron Conole 2018-04-12 22:22 ` [dpdk-dev] [RFC 2/2] nfp: allow for non-root user Aaron Conole 2018-04-13 7:37 ` Alejandro Lucero 2018-04-13 13:31 ` Aaron Conole 2018-04-13 15:31 ` Alejandro Lucero 2018-04-17 15:44 ` Alejandro Lucero 2018-04-17 15:54 ` Alejandro Lucero 2018-04-17 19:19 ` Aaron Conole 2018-04-18 10:53 ` Alejandro Lucero 2018-04-18 12:32 ` Aaron Conole 2018-04-19 6:05 ` Alejandro Lucero 2018-04-20 14:12 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit 2018-04-20 14:56 ` Aaron Conole 2018-04-17 15:54 ` [dpdk-dev] " Thomas Monjalon 2018-04-17 16:24 ` Alejandro Lucero 2018-04-17 19:06 ` Thomas Monjalon 2018-04-13 7:26 ` [dpdk-dev] [RFC 0/2] nfp driver fixes Alejandro Lucero 2018-04-13 13:23 ` Aaron Conole 2018-04-13 15:36 ` Alejandro Lucero
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).