All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: Yanko Kaneti <yaneti@declera.com>
Cc: Bart Van Assche <bvanassche@acm.org>,
	linux-fsdevel@vger.kernel.org, Christoph Hellwig <hch@lst.de>,
	RDMA mailing list <linux-rdma@vger.kernel.org>
Subject: Re: [5.14-rc1 regression] 7fe1e79b59ba configfs: implement the .read_iter and .write_iter methods - affects targetcli restore
Date: Wed, 14 Jul 2021 11:30:49 +0300	[thread overview]
Message-ID: <YO6guXuG5fTfCxZ1@unreal> (raw)
In-Reply-To: <cd770f435008ef80fbd7193f5e79cc48dae0d480.camel@declera.com>

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.

      reply	other threads:[~2021-07-14  8:30 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 message]

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=YO6guXuG5fTfCxZ1@unreal \
    --to=leon@kernel.org \
    --cc=bvanassche@acm.org \
    --cc=hch@lst.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=yaneti@declera.com \
    /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.