linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [5.14-rc1 regression] 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods - affects targetcli restore
@ 2021-07-12 19:10 Yanko Kaneti
  2021-07-13  0:35 ` Bart Van Assche
  0 siblings, 1 reply; 5+ messages in thread
From: Yanko Kaneti @ 2021-07-12 19:10 UTC (permalink / raw)
  To: Bart Van Assche; +Cc: linux-fsdevel, Christoph Hellwig

Hello, 

Bisected a problem that I have with targetcli restore to:

7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods

With it reads of /sys/kernel/config/target/dbroot  go on infinitely,
returning  the config value over and over again.

e.g.

$ modprobe target_core_user
$ head -n 2 /sys/kernel/config/target/dbroot 
/etc/target
/etc/target

Don't know if that's a problem with the commit or the target code, but
could perhaps be affecting other places.

- Yanko

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

* Re: [5.14-rc1 regression] 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods - affects targetcli restore
  2021-07-12 19:10 [5.14-rc1 regression] 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods - affects targetcli restore Yanko Kaneti
@ 2021-07-13  0:35 ` Bart Van Assche
  2021-07-14  6:26   ` Leon Romanovsky
  0 siblings, 1 reply; 5+ messages in thread
From: Bart Van Assche @ 2021-07-13  0:35 UTC (permalink / raw)
  To: Yanko Kaneti; +Cc: linux-fsdevel, Christoph Hellwig

On 7/12/21 12:10 PM, Yanko Kaneti wrote:
> Bisected a problem that I have with targetcli restore to:
> 
> 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods
> 
> With it reads of /sys/kernel/config/target/dbroot  go on infinitely,
> returning  the config value over and over again.
> 
> e.g.
> 
> $ modprobe target_core_user
> $ head -n 2 /sys/kernel/config/target/dbroot
> /etc/target
> /etc/target
> 
> Don't know if that's a problem with the commit or the target code, but
> could perhaps be affecting other places.

The dbroot show method looks fine to me:

static ssize_t target_core_item_dbroot_show(struct config_item *item,
					    char *page)
{
	return sprintf(page, "%s\n", db_root);
}

Anyway, I can reproduce this behavior. I will take a look at this.

Bart.

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

* Re: [5.14-rc1 regression] 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods - affects targetcli restore
  2021-07-13  0:35 ` Bart Van Assche
@ 2021-07-14  6:26   ` Leon Romanovsky
  2021-07-14  8:11     ` Yanko Kaneti
  0 siblings, 1 reply; 5+ messages in thread
From: Leon Romanovsky @ 2021-07-14  6:26 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: Yanko Kaneti, linux-fsdevel, Christoph Hellwig, RDMA mailing list

On Mon, Jul 12, 2021 at 05:35:16PM -0700, Bart Van Assche wrote:
> On 7/12/21 12:10 PM, Yanko Kaneti wrote:
> > Bisected a problem that I have with targetcli restore to:
> > 
> > 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods
> > 
> > With it reads of /sys/kernel/config/target/dbroot  go on infinitely,
> > returning  the config value over and over again.
> > 
> > e.g.
> > 
> > $ modprobe target_core_user
> > $ head -n 2 /sys/kernel/config/target/dbroot
> > /etc/target
> > /etc/target
> > 
> > Don't know if that's a problem with the commit or the target code, but
> > could perhaps be affecting other places.
> 
> The dbroot show method looks fine to me:
> 
> static ssize_t target_core_item_dbroot_show(struct config_item *item,
> 					    char *page)
> {
> 	return sprintf(page, "%s\n", db_root);
> }
> 
> Anyway, I can reproduce this behavior. I will take a look at this.

The problem exists for all configs users, we (RDMA) experience the same
issue with default_roce_mode and default_roce_tos files.

The configfs_read_iter() doesn't indicate to the upper layer that it
should stop reread. In my case, the iov_iter_count(to) is equal to 131072,
which is huge comparable to real buffer->count.

....
[  192.077873] configfs: configfs_read_iter: count = 131072, pos = 15880, buf = RoCE v2
[  192.078146] configfs: configfs_read_iter: count = 131072, pos = 15888, buf = RoCE v2
[  192.078510] configfs: configfs_read_iter: count = 131072, pos = 15896, buf = RoCE v2
....

Thanks

> 
> Bart.

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

* Re: [5.14-rc1 regression] 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods - affects targetcli restore
  2021-07-14  6:26   ` Leon Romanovsky
@ 2021-07-14  8:11     ` Yanko Kaneti
  2021-07-14  8:30       ` Leon Romanovsky
  0 siblings, 1 reply; 5+ messages in thread
From: Yanko Kaneti @ 2021-07-14  8:11 UTC (permalink / raw)
  To: Leon Romanovsky, Bart Van Assche
  Cc: linux-fsdevel, Christoph Hellwig, RDMA mailing list

On Wed, 2021-07-14 at 09:26 +0300, Leon Romanovsky wrote:
> On Mon, Jul 12, 2021 at 05:35:16PM -0700, Bart Van Assche wrote:
> > On 7/12/21 12:10 PM, Yanko Kaneti wrote:
> > > Bisected a problem that I have with targetcli restore to:
> > > 
> > > 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods
> > > 
> > > With it reads of /sys/kernel/config/target/dbroot  go on infinitely,
> > > returning  the config value over and over again.
> > > 
> > > e.g.
> > > 
> > > $ modprobe target_core_user
> > > $ head -n 2 /sys/kernel/config/target/dbroot
> > > /etc/target
> > > /etc/target
> > > 
> > > Don't know if that's a problem with the commit or the target code, but
> > > could perhaps be affecting other places.
> > 
> > The dbroot show method looks fine to me:
> > 
> > static ssize_t target_core_item_dbroot_show(struct config_item *item,
> > 					    char *page)
> > {
> > 	return sprintf(page, "%s\n", db_root);
> > }
> > 
> > Anyway, I can reproduce this behavior. I will take a look at this.
> 
> The problem exists for all configs users, we (RDMA) experience the same
> issue with default_roce_mode and default_roce_tos files.
> 
> The configfs_read_iter() doesn't indicate to the upper layer that it
> should stop reread. In my case, the iov_iter_count(to) is equal to 131072,
> which is huge comparable to real buffer->count.
> 
> ....
> [  192.077873] configfs: configfs_read_iter: count = 131072, pos = 15880, buf = RoCE v2
> [  192.078146] configfs: configfs_read_iter: count = 131072, pos = 15888, buf = RoCE v2
> [  192.078510] configfs: configfs_read_iter: count = 131072, pos = 15896, buf = RoCE v2
> ....

The fix Bart posted yesterday works for me here

https://git.infradead.org/users/hch/configfs.git/commit/420405ecde061fde76d67bd3a67577a563ea758e

Thanks


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

* Re: [5.14-rc1 regression] 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods - affects targetcli restore
  2021-07-14  8:11     ` Yanko Kaneti
@ 2021-07-14  8:30       ` Leon Romanovsky
  0 siblings, 0 replies; 5+ messages in thread
From: Leon Romanovsky @ 2021-07-14  8:30 UTC (permalink / raw)
  To: Yanko Kaneti
  Cc: Bart Van Assche, linux-fsdevel, Christoph Hellwig, RDMA mailing list

On Wed, Jul 14, 2021 at 11:11:52AM +0300, Yanko Kaneti wrote:
> On Wed, 2021-07-14 at 09:26 +0300, Leon Romanovsky wrote:
> > On Mon, Jul 12, 2021 at 05:35:16PM -0700, Bart Van Assche wrote:
> > > On 7/12/21 12:10 PM, Yanko Kaneti wrote:
> > > > Bisected a problem that I have with targetcli restore to:
> > > > 
> > > > 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods
> > > > 
> > > > With it reads of /sys/kernel/config/target/dbroot  go on infinitely,
> > > > returning  the config value over and over again.
> > > > 
> > > > e.g.
> > > > 
> > > > $ modprobe target_core_user
> > > > $ head -n 2 /sys/kernel/config/target/dbroot
> > > > /etc/target
> > > > /etc/target
> > > > 
> > > > Don't know if that's a problem with the commit or the target code, but
> > > > could perhaps be affecting other places.
> > > 
> > > The dbroot show method looks fine to me:
> > > 
> > > static ssize_t target_core_item_dbroot_show(struct config_item *item,
> > > 					    char *page)
> > > {
> > > 	return sprintf(page, "%s\n", db_root);
> > > }
> > > 
> > > Anyway, I can reproduce this behavior. I will take a look at this.
> > 
> > The problem exists for all configs users, we (RDMA) experience the same
> > issue with default_roce_mode and default_roce_tos files.
> > 
> > The configfs_read_iter() doesn't indicate to the upper layer that it
> > should stop reread. In my case, the iov_iter_count(to) is equal to 131072,
> > which is huge comparable to real buffer->count.
> > 
> > ....
> > [  192.077873] configfs: configfs_read_iter: count = 131072, pos = 15880, buf = RoCE v2
> > [  192.078146] configfs: configfs_read_iter: count = 131072, pos = 15888, buf = RoCE v2
> > [  192.078510] configfs: configfs_read_iter: count = 131072, pos = 15896, buf = RoCE v2
> > ....
> 
> The fix Bart posted yesterday works for me here
> 
> https://git.infradead.org/users/hch/configfs.git/commit/420405ecde061fde76d67bd3a67577a563ea758e

Thanks a lot, I came mostly to the same fix.

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

end of thread, other threads:[~2021-07-14  8:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-12 19:10 [5.14-rc1 regression] 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods - affects targetcli restore Yanko Kaneti
2021-07-13  0:35 ` Bart Van Assche
2021-07-14  6:26   ` Leon Romanovsky
2021-07-14  8:11     ` Yanko Kaneti
2021-07-14  8:30       ` Leon Romanovsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).