public inbox for linux-block@vger.kernel.org
 help / color / mirror / Atom feed
From: MANISH PANDEY <quic_mapa@quicinc.com>
To: Bart Van Assche <bvanassche@acm.org>,
	Qais Yousef <qyousef@layalina.io>,
	Christian Loehle <christian.loehle@arm.com>
Cc: <axboe@kernel.dk>, <mingo@kernel.org>, <peterz@infradead.org>,
	<vincent.guittot@linaro.org>, <dietmar.eggemann@arm.com>,
	<linux-block@vger.kernel.org>, <sudeep.holla@arm.com>,
	Jaegeuk Kim <jaegeuk@kernel.org>,
	Christoph Hellwig <hch@infradead.org>, <kailash@google.com>,
	<tkjos@google.com>, <dhavale@google.com>, <bvanassche@google.com>,
	<quic_nitirawa@quicinc.com>, <quic_cang@quicinc.com>,
	<quic_rampraka@quicinc.com>, <quic_narepall@quicinc.com>
Subject: Re: Regarding patch "block/blk-mq: Don't complete locally if capacities are different"
Date: Mon, 5 Aug 2024 23:05:59 +0530	[thread overview]
Message-ID: <1d9c27b2-77c7-462f-bde9-1207f931ea9f@quicinc.com> (raw)
In-Reply-To: <25909f08-12a5-4625-839d-9e31df4c9c72@acm.org>



On 8/5/2024 10:47 PM, Bart Van Assche wrote:
> On 8/4/24 7:07 PM, Qais Yousef wrote:
>> irqbalancers usually move the interrupts, and I'm not sure we can
>> make an assumption about the reason an interrupt is triggering on
>> different capacity CPU.
> User space software can't modify the affinity of managed interrupts.
>  From include/linux/irq.h:
> 
>   * IRQD_AFFINITY_MANAGED - Affinity is auto-managed by the kernel
> 
> That flag is tested by the procfs code that implements the smp_affinity
> procfs attribute:
> 
> static ssize_t write_irq_affinity(int type, struct file *file,
>          const char __user *buffer, size_t count, loff_t *pos)
> {
>      [ ... ]
>      if (!irq_can_set_affinity_usr(irq) || no_irq_affinity)
>          return -EIO;
>      [ ... ]
> }
> 
> I'm not sure whether or not the interrupts on Manish test setup are
> managed. Manish, can you please provide the output of the following
> commands?
> 
> adb shell 'grep -i ufshcd /proc/interrupts'
> adb shell 'grep -i ufshcd /proc/interrupts | while read a b; do ls -ld 
> /proc/irq/${a%:}/smp_affinity; done'
> adb shell 'grep -i ufshcd /proc/interrupts | while read a b; do grep -aH 
> . /proc/irq/${a%:}/smp_affinity; done'
> 
In our SoC's we manage Power and Perf balancing by dynamically changing 
the IRQs based on the load. Say if we have more load, we assign UFS IRQs 
on Large cluster CPUs and if we have less load, we affine the IRQs on 
Small cluster CPUs.

Also for some SoC's since IRQs are mainly delivered to Small cluster 
CPUs by default, so we manage to complete the request via using 
QUEUE_FLAG_SAME_FORCE.

This issue is more affecting UFS MCQ devices, which usages ESI/MSI IRQs 
and have distributed ESI IRQs for CQs.
Mostly we use Large cluster CPUs for binding IRQ and CQ and hence 
completing more completions on Large cluster which won't be from same 
capacity CPU as request may be from S/M clusters.

> Thanks,
> 
> Bart.

  reply	other threads:[~2024-08-05 17:36 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-31 13:46 Regarding patch "block/blk-mq: Don't complete locally if capacities are different" MANISH PANDEY
2024-08-01  9:25 ` MANISH PANDEY
2024-08-01 16:05   ` Qais Yousef
2024-08-02  9:03 ` Christian Loehle
2024-08-05  2:07   ` Qais Yousef
2024-08-05 10:18     ` Christian Loehle
2024-08-05 17:24       ` MANISH PANDEY
2024-08-09  0:47         ` Qais Yousef
2024-08-09  0:23       ` Qais Yousef
2024-08-13 16:20         ` Christian Loehle
2024-09-01 17:25           ` Qais Yousef
2024-08-05 17:17     ` Bart Van Assche
2024-08-05 17:35       ` MANISH PANDEY [this message]
2024-08-05 17:52         ` Bart Van Assche
2024-08-08  6:05           ` MANISH PANDEY
2024-08-09  0:36             ` Qais Yousef
2024-08-11 17:41             ` Dietmar Eggemann
2024-08-12 18:15               ` Sandeep Dhavale
2024-08-21 12:29                 ` MANISH PANDEY
2024-08-21 17:22                   ` Bart Van Assche
2024-08-22 10:46                     ` MANISH PANDEY
2024-08-22 14:24                       ` Bart Van Assche
2024-08-23  7:57                         ` MANISH PANDEY
2024-08-23 12:03                           ` Christian Loehle
2024-08-23 13:49                             ` MANISH PANDEY
2024-08-23 14:12                               ` Bart Van Assche
2024-08-26 17:32                                 ` Christian Loehle
2024-09-01 17:13                   ` Qais Yousef
2024-08-09  0:28       ` Qais Yousef

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=1d9c27b2-77c7-462f-bde9-1207f931ea9f@quicinc.com \
    --to=quic_mapa@quicinc.com \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=bvanassche@google.com \
    --cc=christian.loehle@arm.com \
    --cc=dhavale@google.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=hch@infradead.org \
    --cc=jaegeuk@kernel.org \
    --cc=kailash@google.com \
    --cc=linux-block@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=quic_cang@quicinc.com \
    --cc=quic_narepall@quicinc.com \
    --cc=quic_nitirawa@quicinc.com \
    --cc=quic_rampraka@quicinc.com \
    --cc=qyousef@layalina.io \
    --cc=sudeep.holla@arm.com \
    --cc=tkjos@google.com \
    --cc=vincent.guittot@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox