From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] irqchip, gicv3-its, numa: Workaround for Cavium ThunderX erratum 23144
Date: Mon, 24 Aug 2015 14:47:10 +0100 [thread overview]
Message-ID: <55DB205E.9070205@arm.com> (raw)
In-Reply-To: <CAFpQJXUTNss=u2x7Ynd9wOObZn_ZHkcMz2+F4MKooy5jrvZ02w@mail.gmail.com>
On 24/08/15 14:27, Ganapatrao Kulkarni wrote:
> On Mon, Aug 24, 2015 at 6:15 PM, Marc Zyngier <marc.zyngier@arm.com> wrote:
>>>>> static void its_enable_cavium_thunderx(void *data)
>>>>> {
>>>>> - struct its_node *its = data;
>>>>> + struct its_node __maybe_unused *its = data;
>>>>>
>>>>> - its->flags |= ITS_FLAGS_CAVIUM_THUNDERX;
>>>>> +#ifdef CONFIG_CAVIUM_ERRATUM_22375
>>>>> + its->flags |= ITS_WORKAROUND_CAVIUM_22375;
>>>>> + pr_info("ITS: Enabling workaround for 22375, 24313\n");
>>>>> +#endif
>>>>> +
>>>>> +#ifdef CONFIG_CAVIUM_ERRATUM_23144
>>>>> + if (num_possible_nodes() > 1) {
>>>>> + its->numa_node = its_get_node_thunderx(its);
>>>>
>>>> I'd rather see numa_node being always initialized to something useful.
>>>> If you're adding numa support, why can't this be initialized via
>>>> standard topology bindings?
>>> IIUC, topology defines only cpu topology.
>>
>> Well, welcome to a much more complex system where both your CPUs and
>> your IOs have some degree of affinity. This needs to be described
>> properly, and not hacked on the side.
> ok, will add description for the function.
I sense that you misunderstood what I meant. What I'd like to see is
some topology information coming from DT, showing the relationship
between a device (your ITS) and a given node (your socket). This can
then be used from two purposes:
- find the optimal affinity for a MSI so that it doesn't default to a
foreign node (a reasonable performance expectation),
- work around implementation bugs where an LPI cannot be routed to a
redistributor that is on a foreign node.
I really don't feel like adding a hack just for the second point, and
I'd rather get the big picture right so that your workaround is just a
special case of the generic one.
Thanks,
M.
--
Jazz is not dead. It just smells funny...
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <marc.zyngier@arm.com>
To: Ganapatrao Kulkarni <gpkulkarni@gmail.com>
Cc: Robert Richter <robert.richter@caviumnetworks.com>,
Will Deacon <Will.Deacon@arm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Jason Cooper <jason@lakedaemon.net>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Tirumalesh Chalamarla <tirumalesh.chalamarla@caviumnetworks.com>,
Robert Richter <rric@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Ganapatrao Kulkarni <ganapatrao.kulkarni@caviumnetworks.com>
Subject: Re: [PATCH] irqchip, gicv3-its, numa: Workaround for Cavium ThunderX erratum 23144
Date: Mon, 24 Aug 2015 14:47:10 +0100 [thread overview]
Message-ID: <55DB205E.9070205@arm.com> (raw)
In-Reply-To: <CAFpQJXUTNss=u2x7Ynd9wOObZn_ZHkcMz2+F4MKooy5jrvZ02w@mail.gmail.com>
On 24/08/15 14:27, Ganapatrao Kulkarni wrote:
> On Mon, Aug 24, 2015 at 6:15 PM, Marc Zyngier <marc.zyngier@arm.com> wrote:
>>>>> static void its_enable_cavium_thunderx(void *data)
>>>>> {
>>>>> - struct its_node *its = data;
>>>>> + struct its_node __maybe_unused *its = data;
>>>>>
>>>>> - its->flags |= ITS_FLAGS_CAVIUM_THUNDERX;
>>>>> +#ifdef CONFIG_CAVIUM_ERRATUM_22375
>>>>> + its->flags |= ITS_WORKAROUND_CAVIUM_22375;
>>>>> + pr_info("ITS: Enabling workaround for 22375, 24313\n");
>>>>> +#endif
>>>>> +
>>>>> +#ifdef CONFIG_CAVIUM_ERRATUM_23144
>>>>> + if (num_possible_nodes() > 1) {
>>>>> + its->numa_node = its_get_node_thunderx(its);
>>>>
>>>> I'd rather see numa_node being always initialized to something useful.
>>>> If you're adding numa support, why can't this be initialized via
>>>> standard topology bindings?
>>> IIUC, topology defines only cpu topology.
>>
>> Well, welcome to a much more complex system where both your CPUs and
>> your IOs have some degree of affinity. This needs to be described
>> properly, and not hacked on the side.
> ok, will add description for the function.
I sense that you misunderstood what I meant. What I'd like to see is
some topology information coming from DT, showing the relationship
between a device (your ITS) and a given node (your socket). This can
then be used from two purposes:
- find the optimal affinity for a MSI so that it doesn't default to a
foreign node (a reasonable performance expectation),
- work around implementation bugs where an LPI cannot be routed to a
redistributor that is on a foreign node.
I really don't feel like adding a hack just for the second point, and
I'd rather get the big picture right so that your workaround is just a
special case of the generic one.
Thanks,
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2015-08-24 13:47 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-22 13:10 [PATCH] irqchip, gicv3-its, numa: Workaround for Cavium ThunderX erratum 23144 Robert Richter
2015-08-22 13:10 ` Robert Richter
2015-08-24 10:17 ` Marc Zyngier
2015-08-24 10:17 ` Marc Zyngier
2015-08-24 12:30 ` Ganapatrao Kulkarni
2015-08-24 12:30 ` Ganapatrao Kulkarni
2015-08-24 12:45 ` Marc Zyngier
2015-08-24 12:45 ` Marc Zyngier
2015-08-24 13:27 ` Ganapatrao Kulkarni
2015-08-24 13:27 ` Ganapatrao Kulkarni
2015-08-24 13:47 ` Marc Zyngier [this message]
2015-08-24 13:47 ` Marc Zyngier
2015-08-24 16:28 ` Ganapatrao Kulkarni
2015-08-24 16:28 ` Ganapatrao Kulkarni
-- strict thread matches above, loose matches on Subject: below --
2015-08-25 12:49 Alexandru Avadanii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55DB205E.9070205@arm.com \
--to=marc.zyngier@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.