Re: [PATCH 8/8] habanalabs: enable 64-bit DMA mask in POWER9

From: Oded Gabbay
Date: Tue Jun 11 2019 - 04:13:32 EST


On Tue, Jun 11, 2019 at 10:59 AM Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Tue, Jun 11, 2019 at 08:50:45AM +0300, Oded Gabbay wrote:
> > --- a/drivers/misc/habanalabs/habanalabs_drv.c
> > +++ b/drivers/misc/habanalabs/habanalabs_drv.c
> > @@ -28,6 +28,7 @@ static DEFINE_MUTEX(hl_devs_idr_lock);
> >
> > static int timeout_locked = 5;
> > static int reset_on_lockup = 1;
> > +static int power9_64bit_dma_enable;
> >
> > module_param(timeout_locked, int, 0444);
> > MODULE_PARM_DESC(timeout_locked,
> > @@ -37,6 +38,10 @@ module_param(reset_on_lockup, int, 0444);
> > MODULE_PARM_DESC(reset_on_lockup,
> > "Do device reset on lockup (0 = no, 1 = yes, default yes)");
> >
> > +module_param(power9_64bit_dma_enable, int, 0444);
> > +MODULE_PARM_DESC(power9_64bit_dma_enable,
> > + "Enable 64-bit DMA mask. Should be set only in POWER9 machine (0 = no, 1 = yes, default no)");
> > +
> > #define PCI_VENDOR_ID_HABANALABS 0x1da3
> >
> > #define PCI_IDS_GOYA 0x0001
>
>
> This is not the 1990's, please do not use module parameters. Yeah, you
> have a bunch of them already, but do not add additional ones that can be
> easily determined at runtime, like this one.
>
> thanks,
>
> greg k-h

Hi Greg,
I would love to do this in runtime and that was my intent all along
until I hit a wall on *how* to find out it in runtime if I'm running
on POWER9 with PHB4 or not.
I did a search in the kernel code, consulted with a couple of people
but I didn't get any way of doing this in runtime.
If you have some way, please share it with me because I hit a wall
with this issue.

The fact of the matter is, I have two different configurations of *my*
device's PCIe controller. One is only suitable to POWER9 with PHB4 and
the other one suits all the rest architectures/systems (that we have
tested so far). So I have to know which system I'm running on and as I
said, I didn't find a kernel API which can help me do that.

Thanks,
Oded