* [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).