From: Vinicius Costa Gomes <vinicius.gomes@intel.com>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [next-queue PATCH v2 2/2] igc: Add support for ETF offloading
Date: Wed, 12 Feb 2020 16:13:14 -0800 [thread overview]
Message-ID: <87eeuzwdid.fsf@linux.intel.com> (raw)
In-Reply-To: <158144496367.84624.2078546125857384447@titagi-mobl.amr.corp.intel.com>
Andre Guedes <andre.guedes@linux.intel.com> writes:
> Hi Vinicius,
>
> Quoting Vinicius Costa Gomes (2020-02-10 17:13:13)
>> >> @@ -4600,6 +4661,9 @@ static int igc_setup_tc(struct net_device *dev, enum tc_setup_type type,
>> >> case TC_SETUP_QDISC_TAPRIO:
>> >> return igc_tsn_enable_qbv_scheduling(adapter, type_data);
>> >>
>> >> + case TC_SETUP_QDISC_ETF:
>> >> + return igc_tsn_enable_launchtime(adapter, type_data);
>> >
>> > Consider the scenario where both TAPRIO and ETF offloads are disabled and we
>> > want to enable ETF offload. ETF depends on adapter->base_time is set to work
>> > properly, but I couldn't find where in this patch it is set. Could you please
>> > clarify that?
>>
>> '->base_time' doesn't need to be set, i.e. if it's zero (which is the
>> case that only ETF offloading is enabled), it should be fine. H
>>
>> ow we calculate the launchtime in igc_tx_launchtime() is able to handle
>> 'base_time_ being zero just fine, and the BASET_{L,H} registers will
>> have sane values when it's zero as well.
>
> If '->base_time' is never set, I suspect ETF disabling has an issue. See this
> piece of code:
>
> int igc_tsn_offload_apply(struct igc_adapter *adapter)
> {
> bool is_any_enabled = adapter->base_time || is_any_launchtime(adapter);
>
> if (!(adapter->flags & IGC_FLAG_TSN_QBV_ENABLED) && !is_any_enabled)
> return 0;
>
> ...
> }
>
> By the time igc_tsn_offload_apply() is called, we had already set
> 'ring->launchtime' to false. Since IGC_FLAG_TSN_QBV_ENABLED isn't set and
> 'is_any_enabled' is false, we return without calling igc_tsn_disable_offload().
>
I am still not seeing the problem.
If ETF offloading was disabled, and then enabled,
igc_save_launchtime_params() got called and some of the queues have
launchtime_enable bit set. igc_save_launchtime_params() calls
igc_tsn_offload_apply() and IGC_FLAG_TSN_QBV_ENABLED is set. Later, when
the user wants to disable ETF offloading (the only way is to remove the
qdisc, remember), the same thing happens: save_launchtime() and then
offload_apply(), but now the IGC_FLAG_TSN_QBV_ENABLED is enabled, but
there's no user, so igc_tsn_disable_offload() is called and the
controller is reset if necessary.
--
Vinicius
next prev parent reply other threads:[~2020-02-13 0:13 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-07 18:24 [Intel-wired-lan] [next-queue PATCH v2 0/2] igc: Add initial TSN qdiscs offloading Vinicius Costa Gomes
2020-02-07 18:24 ` [Intel-wired-lan] [next-queue PATCH v2 1/2] igc: Add support for taprio offloading Vinicius Costa Gomes
2020-02-10 20:33 ` Andre Guedes
2020-02-13 0:24 ` Vinicius Costa Gomes
2020-02-07 18:24 ` [Intel-wired-lan] [next-queue PATCH v2 2/2] igc: Add support for ETF offloading Vinicius Costa Gomes
2020-02-10 20:34 ` Andre Guedes
2020-02-11 1:13 ` Vinicius Costa Gomes
2020-02-11 18:16 ` Andre Guedes
2020-02-13 0:13 ` Vinicius Costa Gomes [this message]
2020-02-13 17:48 ` Andre Guedes
2020-02-13 0:23 ` Vinicius Costa Gomes
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=87eeuzwdid.fsf@linux.intel.com \
--to=vinicius.gomes@intel.com \
--cc=intel-wired-lan@osuosl.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.