All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch
@ 2025-04-02  7:09 LongPing Wei
  2025-04-02  7:09 ` [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr LongPing Wei
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: LongPing Wei @ 2025-04-02  7:09 UTC (permalink / raw)
  To: snitzer, mpatocka
  Cc: dm-devel, guoweichao, ebiggers, bvanassche, LongPing Wei

1. call blk_flush_plug when cache hit as the address of the subsequent
 bio is no longer contiguous with the previous bio;
2. skip cond_resched when ioprio class is rt;

Signed-off-by: LongPing Wei <weilongping@oppo.com>
---
 drivers/md/dm-bufio.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c
index 9c8ed65cd87e..ec8392fbcf5d 100644
--- a/drivers/md/dm-bufio.c
+++ b/drivers/md/dm-bufio.c
@@ -1981,6 +1981,7 @@ static void __dm_bufio_prefetch(struct dm_bufio_client *c,
 			unsigned short ioprio)
 {
 	struct blk_plug plug;
+	unsigned short ioprio_class = IOPRIO_PRIO_CLASS(ioprio);
 
 	LIST_HEAD(write_list);
 
@@ -1997,6 +1998,7 @@ static void __dm_bufio_prefetch(struct dm_bufio_client *c,
 		if (b) {
 			/* already in cache */
 			cache_put_and_wake(c, b);
+			blk_flush_plug(&plug, false);
 			continue;
 		}
 
@@ -2017,7 +2019,8 @@ static void __dm_bufio_prefetch(struct dm_bufio_client *c,
 				submit_io(b, REQ_OP_READ, ioprio, read_endio);
 			dm_bufio_release(b);
 
-			cond_resched();
+			if (ioprio_class != IOPRIO_CLASS_RT)
+				cond_resched();
 
 			if (!n_blocks)
 				goto flush_plug;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr
  2025-04-02  7:09 [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch LongPing Wei
@ 2025-04-02  7:09 ` LongPing Wei
  2025-04-02  9:56   ` Mikulas Patocka
  2025-04-10  8:26   ` Christoph Hellwig
  2025-04-02 17:43 ` [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch Eric Biggers
  2025-04-10  8:29 ` Christoph Hellwig
  2 siblings, 2 replies; 11+ messages in thread
From: LongPing Wei @ 2025-04-02  7:09 UTC (permalink / raw)
  To: snitzer, mpatocka
  Cc: dm-devel, guoweichao, ebiggers, bvanassche, LongPing Wei

At this time, all bios for hash blocks should eventually
be merged into a single large bio.

Signed-off-by: LongPing Wei <weilongping@oppo.com>
---
 drivers/md/dm-verity-target.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
index 3c427f18a04b..813d5cfc7ffa 100644
--- a/drivers/md/dm-verity-target.c
+++ b/drivers/md/dm-verity-target.c
@@ -1683,6 +1683,10 @@ static int verity_ctr(struct dm_target *ti, unsigned int argc, char **argv)
 
 	verity_verify_sig_opts_cleanup(&verify_args);
 
+	dm_bufio_prefetch_with_ioprio(v->bufio, v->hash_start,
+		v->hash_blocks - v->hash_start,
+		IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 0));
+
 	dm_audit_log_ctr(DM_MSG_PREFIX, ti, 1);
 
 	return 0;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr
  2025-04-02  7:09 ` [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr LongPing Wei
@ 2025-04-02  9:56   ` Mikulas Patocka
  2025-04-02 10:35     ` LongPing Wei
  2025-04-10  8:26   ` Christoph Hellwig
  1 sibling, 1 reply; 11+ messages in thread
From: Mikulas Patocka @ 2025-04-02  9:56 UTC (permalink / raw)
  To: LongPing Wei; +Cc: snitzer, dm-devel, guoweichao, ebiggers, bvanassche



On Wed, 2 Apr 2025, LongPing Wei wrote:

> At this time, all bios for hash blocks should eventually
> be merged into a single large bio.
> 
> Signed-off-by: LongPing Wei <weilongping@oppo.com>
> ---
>  drivers/md/dm-verity-target.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
> index 3c427f18a04b..813d5cfc7ffa 100644
> --- a/drivers/md/dm-verity-target.c
> +++ b/drivers/md/dm-verity-target.c
> @@ -1683,6 +1683,10 @@ static int verity_ctr(struct dm_target *ti, unsigned int argc, char **argv)
>  
>  	verity_verify_sig_opts_cleanup(&verify_args);
>  
> +	dm_bufio_prefetch_with_ioprio(v->bufio, v->hash_start,
> +		v->hash_blocks - v->hash_start,
> +		IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 0));
> +
>  	dm_audit_log_ctr(DM_MSG_PREFIX, ti, 1);
>  
>  	return 0;
> -- 
> 2.34.1

Hi

I would move it into the "resume" callback, so that if the user 
reconfigures the device stack between "ctr" and "resume", it won't read 
the data too early.

Don't use IOPRIO_CLASS_RT, this is not real-time requirement, 
IOPRIO_CLASS_RT would slow down concurrent I/O.

Another problem with this approach is that when the verity device is big 
and system memory is small, it just causes I/O churn - new bufio blocks 
will be displacing old blocks - and it will degrade performance, not 
improve it.

Please, describe some scenario, where this prefetch actually helps. What 
is the size of the metadata that you are prefetching? What is the total 
memory size? Is there any benchmark that shows the advantage of this 
patch?

Mikulas


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr
  2025-04-02  9:56   ` Mikulas Patocka
@ 2025-04-02 10:35     ` LongPing Wei
  2025-04-02 18:44       ` Mikulas Patocka
  0 siblings, 1 reply; 11+ messages in thread
From: LongPing Wei @ 2025-04-02 10:35 UTC (permalink / raw)
  To: Mikulas Patocka; +Cc: snitzer, dm-devel, guoweichao, ebiggers, bvanassche

On 2025/4/2 17:56, Mikulas Patocka wrote:
> 
> 
> On Wed, 2 Apr 2025, LongPing Wei wrote:
> 
>> At this time, all bios for hash blocks should eventually
>> be merged into a single large bio.
>>
>> Signed-off-by: LongPing Wei <weilongping@oppo.com>
>> ---
>>   drivers/md/dm-verity-target.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
>> index 3c427f18a04b..813d5cfc7ffa 100644
>> --- a/drivers/md/dm-verity-target.c
>> +++ b/drivers/md/dm-verity-target.c
>> @@ -1683,6 +1683,10 @@ static int verity_ctr(struct dm_target *ti, unsigned int argc, char **argv)
>>   
>>   	verity_verify_sig_opts_cleanup(&verify_args);
>>   
>> +	dm_bufio_prefetch_with_ioprio(v->bufio, v->hash_start,
>> +		v->hash_blocks - v->hash_start,
>> +		IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 0));
>> +
>>   	dm_audit_log_ctr(DM_MSG_PREFIX, ti, 1);
>>   
>>   	return 0;
>> -- 
>> 2.34.1
> 
> Hi
> 
> I would move it into the "resume" callback, so that if the user
> reconfigures the device stack between "ctr" and "resume", it won't read
> the data too early.
> 
> Don't use IOPRIO_CLASS_RT, this is not real-time requirement,
> IOPRIO_CLASS_RT would slow down concurrent I/O.
> 
If the prefetch io is submitted with non-rt at first, the later dm io
need the same hash block will wait the non-rt bio.
> Another problem with this approach is that when the verity device is big
> and system memory is small, it just causes I/O churn - new bufio blocks
> will be displacing old blocks - and it will degrade performance, not
> improve it.
> 
Do we need a solution to check if the memory is enough to the prefetch?
For Android devices, the verity device should be created on the boot 
procedure.
> Please, describe some scenario, where this prefetch actually helps. What
> is the size of the metadata that you are prefetching? What is the total
> memory size? Is there any benchmark that shows the advantage of this
> patch?
The size of hash blocks for the ROM of our low-end devices is about
71MiB. I want to enhance probability of cache hit when
try_verify_in_tasklet is enabled. How about only doing the prefetch when
try_verify_in_tasklet is enabled?
For example:
	if (v->use_bh_wq)
		dm_bufio_prefetch_with_ioprio(v->bufio, v->hash_start,
			v->hash_blocks - v->hash_start,
			IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 0));

> 
> Mikulas
> 

LongPing

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch
  2025-04-02  7:09 [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch LongPing Wei
  2025-04-02  7:09 ` [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr LongPing Wei
@ 2025-04-02 17:43 ` Eric Biggers
  2025-04-03  0:12   ` LongPing Wei
  2025-04-10  8:29 ` Christoph Hellwig
  2 siblings, 1 reply; 11+ messages in thread
From: Eric Biggers @ 2025-04-02 17:43 UTC (permalink / raw)
  To: LongPing Wei; +Cc: snitzer, mpatocka, dm-devel, guoweichao, bvanassche

On Wed, Apr 02, 2025 at 03:09:34PM +0800, LongPing Wei wrote:
> 1. call blk_flush_plug when cache hit as the address of the subsequent
>  bio is no longer contiguous with the previous bio;
> 2. skip cond_resched when ioprio class is rt;
> 
> Signed-off-by: LongPing Wei <weilongping@oppo.com>
> ---
>  drivers/md/dm-bufio.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)

Looks fine:

Reviewed-by: Eric Biggers <ebiggers@kernel.org>

But I do think the prefetching should be reworked to be along the lines of what
I suggested here:
https://lore.kernel.org/dm-devel/20250327170524.GF1425@sol.localdomain/
Any chance you're interested in helping with that?

It also *might* be the case that the prefetching is no longer helpful and should
just be removed.  Especially if dm-verity will start prefetching the whole hash
tree anyway, as your other patch does.

- Eric

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr
  2025-04-02 10:35     ` LongPing Wei
@ 2025-04-02 18:44       ` Mikulas Patocka
  2025-04-02 23:58         ` LongPing Wei
  2025-04-10  8:28         ` Christoph Hellwig
  0 siblings, 2 replies; 11+ messages in thread
From: Mikulas Patocka @ 2025-04-02 18:44 UTC (permalink / raw)
  To: LongPing Wei; +Cc: snitzer, dm-devel, guoweichao, ebiggers, bvanassche



On Wed, 2 Apr 2025, LongPing Wei wrote:

> On 2025/4/2 17:56, Mikulas Patocka wrote:
> > 
> > 
> > On Wed, 2 Apr 2025, LongPing Wei wrote:
> > 
> > > At this time, all bios for hash blocks should eventually
> > > be merged into a single large bio.
> > > 
> > > Signed-off-by: LongPing Wei <weilongping@oppo.com>
> > > ---
> > >   drivers/md/dm-verity-target.c | 4 ++++
> > >   1 file changed, 4 insertions(+)
> > > 
> > > diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
> > > index 3c427f18a04b..813d5cfc7ffa 100644
> > > --- a/drivers/md/dm-verity-target.c
> > > +++ b/drivers/md/dm-verity-target.c
> > > @@ -1683,6 +1683,10 @@ static int verity_ctr(struct dm_target *ti,
> > > unsigned int argc, char **argv)
> > >     	verity_verify_sig_opts_cleanup(&verify_args);
> > >   +	dm_bufio_prefetch_with_ioprio(v->bufio, v->hash_start,
> > > +		v->hash_blocks - v->hash_start,
> > > +		IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 0));
> > > +
> > >   	dm_audit_log_ctr(DM_MSG_PREFIX, ti, 1);
> > >     	return 0;
> > > -- 
> > > 2.34.1
> > 
> > Hi
> > 
> > I would move it into the "resume" callback, so that if the user
> > reconfigures the device stack between "ctr" and "resume", it won't read
> > the data too early.
> > 
> > Don't use IOPRIO_CLASS_RT, this is not real-time requirement,
> > IOPRIO_CLASS_RT would slow down concurrent I/O.
> > 
> If the prefetch io is submitted with non-rt at first, the later dm io
> need the same hash block will wait the non-rt bio.

Submitting large I/O with IOPRIO_CLASS_RT will block every other task that 
does some I/O, so I can't do that. It needs to be changed to 
IOPRIO_CLASS_NONE or IOPRIO_CLASS_IDLE.

> > Another problem with this approach is that when the verity device is big
> > and system memory is small, it just causes I/O churn - new bufio blocks
> > will be displacing old blocks - and it will degrade performance, not
> > improve it.
> > 
> Do we need a solution to check if the memory is enough to the prefetch?

Yes.

> For Android devices, the verity device should be created on the boot
> procedure.

> > Please, describe some scenario, where this prefetch actually helps. What
> > is the size of the metadata that you are prefetching? What is the total
> > memory size? Is there any benchmark that shows the advantage of this
> > patch?
> 
> The size of hash blocks for the ROM of our low-end devices is about
> 71MiB. I want to enhance probability of cache hit when
> try_verify_in_tasklet is enabled. How about only doing the prefetch when
> try_verify_in_tasklet is enabled?
> For example:
> 	if (v->use_bh_wq)
> 		dm_bufio_prefetch_with_ioprio(v->bufio, v->hash_start,
> 			v->hash_blocks - v->hash_start,
> 			IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 0));

I wouldn't overload the "use_bh_wq" option for that. Perhaps we could add 
a new option (that would be off by default), so that the patch won't cause 
problems to existing users.

How much does this patch improve Android boot time? So that we can decide 
whether the improvement is worth the complexity.

Mikulas


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr
  2025-04-02 18:44       ` Mikulas Patocka
@ 2025-04-02 23:58         ` LongPing Wei
  2025-04-10  8:28         ` Christoph Hellwig
  1 sibling, 0 replies; 11+ messages in thread
From: LongPing Wei @ 2025-04-02 23:58 UTC (permalink / raw)
  To: Mikulas Patocka; +Cc: snitzer, dm-devel, guoweichao, ebiggers, bvanassche

On 2025/4/3 2:44, Mikulas Patocka wrote:
> 
> 
> On Wed, 2 Apr 2025, LongPing Wei wrote:
> 
>> On 2025/4/2 17:56, Mikulas Patocka wrote:
>>>
>>>
>>> On Wed, 2 Apr 2025, LongPing Wei wrote:
>>>
>>>> At this time, all bios for hash blocks should eventually
>>>> be merged into a single large bio.
>>>>
>>>> Signed-off-by: LongPing Wei <weilongping@oppo.com>
>>>> ---
>>>>    drivers/md/dm-verity-target.c | 4 ++++
>>>>    1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
>>>> index 3c427f18a04b..813d5cfc7ffa 100644
>>>> --- a/drivers/md/dm-verity-target.c
>>>> +++ b/drivers/md/dm-verity-target.c
>>>> @@ -1683,6 +1683,10 @@ static int verity_ctr(struct dm_target *ti,
>>>> unsigned int argc, char **argv)
>>>>      	verity_verify_sig_opts_cleanup(&verify_args);
>>>>    +	dm_bufio_prefetch_with_ioprio(v->bufio, v->hash_start,
>>>> +		v->hash_blocks - v->hash_start,
>>>> +		IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 0));
>>>> +
>>>>    	dm_audit_log_ctr(DM_MSG_PREFIX, ti, 1);
>>>>      	return 0;
>>>> -- 
>>>> 2.34.1
>>>
>>> Hi
>>>
>>> I would move it into the "resume" callback, so that if the user
>>> reconfigures the device stack between "ctr" and "resume", it won't read
>>> the data too early.
>>>
>>> Don't use IOPRIO_CLASS_RT, this is not real-time requirement,
>>> IOPRIO_CLASS_RT would slow down concurrent I/O.
>>>
>> If the prefetch io is submitted with non-rt at first, the later dm io
>> need the same hash block will wait the non-rt bio.
> 
> Submitting large I/O with IOPRIO_CLASS_RT will block every other task that
> does some I/O, so I can't do that. It needs to be changed to
> IOPRIO_CLASS_NONE or IOPRIO_CLASS_IDLE.
> 
>>> Another problem with this approach is that when the verity device is big
>>> and system memory is small, it just causes I/O churn - new bufio blocks
>>> will be displacing old blocks - and it will degrade performance, not
>>> improve it.
>>>
>> Do we need a solution to check if the memory is enough to the prefetch?
> 
> Yes.
> 
>> For Android devices, the verity device should be created on the boot
>> procedure.
> 
>>> Please, describe some scenario, where this prefetch actually helps. What
>>> is the size of the metadata that you are prefetching? What is the total
>>> memory size? Is there any benchmark that shows the advantage of this
>>> patch?
>>
>> The size of hash blocks for the ROM of our low-end devices is about
>> 71MiB. I want to enhance probability of cache hit when
>> try_verify_in_tasklet is enabled. How about only doing the prefetch when
>> try_verify_in_tasklet is enabled?
>> For example:
>> 	if (v->use_bh_wq)
>> 		dm_bufio_prefetch_with_ioprio(v->bufio, v->hash_start,
>> 			v->hash_blocks - v->hash_start,
>> 			IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 0));
> 
> I wouldn't overload the "use_bh_wq" option for that. Perhaps we could add
> a new option (that would be off by default), so that the patch won't cause
> problems to existing users.
> 
> How much does this patch improve Android boot time? So that we can decide
> whether the improvement is worth the complexity.
> 
> Mikulas
> 

Hi, Mikulas

Can we add a parameter that is used only once in the process of ctr or
resume?

For normal boot, the improvement is not significant. But for upgrading
boot, it could be valuable to do this as dm-verity works on dm-user and
snapshotd in userspace has a large number of writes in the background.
We have met an issue of system running slowly in this situation.

If a parameter that is used only once in the process of ctr or
resume is acceptable, I want to use it only in upgrading boot mode and
the shrinker of dm-bufio should be skipped until the system is upgraded.

The goal is to reduce the number of read requests to snapuserd.

LongPing

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch
  2025-04-02 17:43 ` [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch Eric Biggers
@ 2025-04-03  0:12   ` LongPing Wei
  0 siblings, 0 replies; 11+ messages in thread
From: LongPing Wei @ 2025-04-03  0:12 UTC (permalink / raw)
  To: Eric Biggers; +Cc: snitzer, mpatocka, dm-devel, guoweichao, bvanassche

On 2025/4/3 1:43, Eric Biggers wrote:
> On Wed, Apr 02, 2025 at 03:09:34PM +0800, LongPing Wei wrote:
>> 1. call blk_flush_plug when cache hit as the address of the subsequent
>>   bio is no longer contiguous with the previous bio;
>> 2. skip cond_resched when ioprio class is rt;
>>
>> Signed-off-by: LongPing Wei <weilongping@oppo.com>
>> ---
>>   drivers/md/dm-bufio.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> Looks fine:
> 
> Reviewed-by: Eric Biggers <ebiggers@kernel.org>
> 
> But I do think the prefetching should be reworked to be along the lines of what
> I suggested here:
> https://lore.kernel.org/dm-devel/20250327170524.GF1425@sol.localdomain/
> Any chance you're interested in helping with that?
> 

How about calling verity_prefetch_io directly in verity_map only when
use_bh_wq return true for this dm io? The size of dm io may be a greate
number as dm-verity doesn't set a max io length. Mikulas once mentioned
that there was a problem that caused him to give up doing so. Has that
issue been fixed?

> It also *might* be the case that the prefetching is no longer helpful and should
> just be removed.  Especially if dm-verity will start prefetching the whole hash
> tree anyway, as your other patch does.

It seems that we cannot just removed the prefetching in verity_map as
the cahche in dm-bufio may be shrinked.

> 
> - Eric

LongPing


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr
  2025-04-02  7:09 ` [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr LongPing Wei
  2025-04-02  9:56   ` Mikulas Patocka
@ 2025-04-10  8:26   ` Christoph Hellwig
  1 sibling, 0 replies; 11+ messages in thread
From: Christoph Hellwig @ 2025-04-10  8:26 UTC (permalink / raw)
  To: LongPing Wei
  Cc: snitzer, mpatocka, dm-devel, guoweichao, ebiggers, bvanassche

On Wed, Apr 02, 2025 at 03:09:36PM +0800, LongPing Wei wrote:
>  
> +	dm_bufio_prefetch_with_ioprio(v->bufio, v->hash_start,
> +		v->hash_blocks - v->hash_start,
> +		IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 0));

Err, no.  Random code should not prefetch with a RT priority.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr
  2025-04-02 18:44       ` Mikulas Patocka
  2025-04-02 23:58         ` LongPing Wei
@ 2025-04-10  8:28         ` Christoph Hellwig
  1 sibling, 0 replies; 11+ messages in thread
From: Christoph Hellwig @ 2025-04-10  8:28 UTC (permalink / raw)
  To: Mikulas Patocka
  Cc: LongPing Wei, snitzer, dm-devel, guoweichao, ebiggers, bvanassche

On Wed, Apr 02, 2025 at 08:44:39PM +0200, Mikulas Patocka wrote:
> Submitting large I/O with IOPRIO_CLASS_RT will block every other task that 
> does some I/O, so I can't do that. It needs to be changed to 
> IOPRIO_CLASS_NONE or IOPRIO_CLASS_IDLE.

Also random kernel code should not simply upgrade the I/O priority.
Your magic snowflake is not going to be as magic for everyone else.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch
  2025-04-02  7:09 [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch LongPing Wei
  2025-04-02  7:09 ` [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr LongPing Wei
  2025-04-02 17:43 ` [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch Eric Biggers
@ 2025-04-10  8:29 ` Christoph Hellwig
  2 siblings, 0 replies; 11+ messages in thread
From: Christoph Hellwig @ 2025-04-10  8:29 UTC (permalink / raw)
  To: LongPing Wei
  Cc: snitzer, mpatocka, dm-devel, guoweichao, ebiggers, bvanassche

This commit message is extremtly sparse.  Not helped by the fact that
the series also misses a cover letter.

On Wed, Apr 02, 2025 at 03:09:34PM +0800, LongPing Wei wrote:
> 1. call blk_flush_plug when cache hit as the address of the subsequent
>  bio is no longer contiguous with the previous bio;

As you found out blk_flush_plug is not exported, and that for a good
reason.  This also completely fails to explain why you want to do
this and what the measured benefit is.

> 2. skip cond_resched when ioprio class is rt;

Same here.  Also these look compeltely unrelated and I have no idea
why they are in the same patch.


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-04-10  8:29 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-02  7:09 [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch LongPing Wei
2025-04-02  7:09 ` [PATCH 2/2] dm-verity: prefetch all hash blocks in verity_ctr LongPing Wei
2025-04-02  9:56   ` Mikulas Patocka
2025-04-02 10:35     ` LongPing Wei
2025-04-02 18:44       ` Mikulas Patocka
2025-04-02 23:58         ` LongPing Wei
2025-04-10  8:28         ` Christoph Hellwig
2025-04-10  8:26   ` Christoph Hellwig
2025-04-02 17:43 ` [PATCH 1/2] dm-bufio: improve the performance of __dm_bufio_prefetch Eric Biggers
2025-04-03  0:12   ` LongPing Wei
2025-04-10  8:29 ` Christoph Hellwig

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.