Re: [PATCH] sparc64: sparse irq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Bob Picco <bob.picco@xxxxxxxxxx>
Date: Tue, 9 Sep 2014 15:34:24 -0400

> David Miller wrote:	[Tue Sep 09 2014, 03:17:52PM EDT]
>> From: Bob Picco <bpicco@xxxxxxxxxx>
>> Date: Sun,  7 Sep 2014 11:45:07 -0400
>> 
>> > From: bob picco <bpicco@xxxxxxxxxx>
>> > 
>> > This patch attempts to do a few things. The highlights are:  1) provides the
>> > option to enable SPARSE_IRQ, 2) allocates ivector_table at boot time and
>> > 3) default to cookie only VIRQ mechanism for supported firmware. The
>> > first firmware with cookie only support for me appears on T5. You can
>> > optionally force the HV firmware to not cookie only mode which is the
>> > sysino support.
>> > 
>> > The sysino is a deprecated HV mechanism according to the most recent
>> > SPARC Virtual Machine Specification. HV_GRP_INTR is what controls the
>> > cookie/sysino firmware versioning. The history appears to be something like
>> > this:
>> > 	major version 2 was dropped.
>> > 	major version 3 is where a cookie only VIRQ
>> > 	is possible. Using version 3 means ivector_table isn't required.
>> > 
>> > A new boot option is provided should cookie only HV support have issues.
>> > hvirq - this is the version for HV_GRP_INTR. This is related to HV API
>> > versioning.  The code attempts major=3 first by default. The option can
>> > be used to override this default.
>> > 
>> > I've tested with SPARSE_IRQ on T5-8, M7-4 and T4-X and Ultra 45. I've also
>> > tested Ultra45 (Jalap?no) with !SPARSE_IRQ.
>> > 
>> > Cc: sparclinux@xxxxxxxxxxxxxxx
>> > Signed-off-by: Bob Picco <bob.picco@xxxxxxxxxx>
>> 
>> Let's just bite the bullet and enable SPARSE_IRQ unconditionally
>> on SPARC64.
> Okay. Do you require more from me?

I only require that you respin this patch to unconditionally enable
SPARSE_IRQ.

Well, now that you are asking I do have a few more points I'm
interested in :-)

In irq_alloc() you can probably just use irq_alloc_desc(), is IRQ 0
really special in some way that we cannot allocate it?  That's the
only reason I see for using __irq_alloc_descs().

Also, please use NUMA_NO_NODE for the node argument rather than -1.
I am assuming that at some point you will perhaps add some logic to
pick a specific node if appropriate.

Also, once you go to using SPARSE_IRQ always there is absolutely no
reason to pick one NR_IRQS value over another.  I would suggest
therefore that you use the maximum possible value which, reading
your patch, seems to be something like 8192.

If you still want the conditional NR_IRQS sizing in there, I want
to see more details about what exactly determines the size you want
to use.  It's based upon NR_CPUS now but I can't understand that.
What matters is how many virtual or real devices having INOs exist
in the machine, and that seems like a purely platform property to
me.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux