Re: [PATCH v2 hurd] pci: Add RPCs for taking and freeing io ports by BAR

2023-07-20 Thread Samuel Thibault
Damien Zammit, le ven. 21 juil. 2023 01:23:38 +, a ecrit: > On 21/7/23 03:44, Samuel Thibault wrote: > > Damien Zammit, le jeu. 20 juil. 2023 10:13:10 +, a ecrit: > >> + e = master->po->np->nn->ln; > >> + if (strncmp (e->name, FILE_CONFIG_NAME, NAME_SIZE)) > >> +/* This operation may

Re: [PATCH v2 hurd] pci: Add RPCs for taking and freeing io ports by BAR

2023-07-20 Thread Samuel Thibault
Damien Zammit, le ven. 21 juil. 2023 01:50:22 +, a ecrit: > Any task that requests a > range of io ports will have that set locked in the kernel so long as they > were free at the time > of calling i386_io_perm_create. As I wrote in my previous mail, I'd rather see i386_io_perm_modify do the

Re: [PATCH v2 hurd] pci: Add RPCs for taking and freeing io ports by BAR

2023-07-20 Thread Damien Zammit
Hi Joan, On 21/7/23 06:38, Joan Lledó wrote: > I think your design is not compatible with nested arbiters. Actually it is, I have also written a patch for libpciaccess. Basically we need to reduce the number of io ports we are requesting down to just the minimum required to access a device, then

Re: [PATCH v2 hurd] pci: Add RPCs for taking and freeing io ports by BAR

2023-07-20 Thread Damien Zammit
Hi, On 21/7/23 03:44, Samuel Thibault wrote: > Damien Zammit, le jeu. 20 juil. 2023 10:13:10 +, a ecrit: >> + e = master->po->np->nn->ln; >> + if (strncmp (e->name, FILE_CONFIG_NAME, NAME_SIZE)) >> +/* This operation may only be addressed to the config file */ >> +return EINVAL; >> +

Re: [PATCH v2 hurd] pci: Add RPCs for taking and freeing io ports by BAR

2023-07-20 Thread Samuel Thibault
Joan Lledó, le jeu. 20 juil. 2023 22:38:42 +0200, a ecrit: > I think your design is not compatible with nested arbiters. Correct me if > I'm wrong, but AFAIK the arbiter doesn't know if it's a main or a nested > arbiter, it's libpciaccess who handles that. So the arbiter code must be the > same and

Re: [PATCH v2 hurd] pci: Add RPCs for taking and freeing io ports by BAR

2023-07-20 Thread Joan Lledó
Hi Damien, I think your design is not compatible with nested arbiters. Correct me if I'm wrong, but AFAIK the arbiter doesn't know if it's a main or a nested arbiter, it's libpciaccess who handles that. So the arbiter code must be the same and work no matter if it's main or nested. In your de

Re: [PATCH v2 hurd] pci: Add RPCs for taking and freeing io ports by BAR

2023-07-20 Thread Samuel Thibault
Damien Zammit, le jeu. 20 juil. 2023 10:13:10 +, a ecrit: > diff --git a/hurd/pci.defs b/hurd/pci.defs > index e258f5ce..8542e602 100644 > --- a/hurd/pci.defs > +++ b/hurd/pci.defs > @@ -71,3 +71,13 @@ routine pci_get_dev_rom( > master: pci_t; > out data: data_t, dealloc > ); > + >

[PATCH v2 hurd] pci: Add RPCs for taking and freeing io ports by BAR

2023-07-20 Thread Damien Zammit
This would allow pci-arbiter to control which io ports are accessed and pave the way to having granular access to io ports based on pci cards exposing their IO BARs. libpciaccess has convenient api for this kind of access, it allows opening and registering io ports by BAR. Therefore, we can first