All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jinpu Wang <jinpu.wang@cloud.ionos.com>
To: Bart Van Assche <bvanassche@acm.org>
Cc: linux-block@vger.kernel.org, linux-rdma@vger.kernel.org,
	Jens Axboe <axboe@kernel.dk>,
	Christoph Hellwig <hch@infradead.org>,
	Sagi Grimberg <sagi@grimberg.me>,
	Leon Romanovsky <leon@kernel.org>,
	Doug Ledford <dledford@redhat.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Danil Kipnis <danil.kipnis@cloud.ionos.com>,
	Roman Penyaev <rpenyaev@suse.de>,
	Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
Subject: Re: [PATCH v11 21/26] block/rnbd: server: main functionality
Date: Tue, 31 Mar 2020 11:29:45 +0200	[thread overview]
Message-ID: <CAMGffE=4LNom-aWJhogqjgD+mHPp1_B9g=rEzHzdr=x9Zy6vAw@mail.gmail.com> (raw)
In-Reply-To: <ba7c258f-a169-f2d5-3d62-62a7d09908a4@acm.org>

On Sat, Mar 28, 2020 at 6:41 PM Bart Van Assche <bvanassche@acm.org> wrote:
>
> On 2020-03-20 05:16, Jack Wang wrote:
> > +static int __read_mostly port_nr = RTRS_PORT;
>
> Would uint16_t be sufficient for this kernel module parameter?
yes, u16 is enough.
>
> Is this kernel module parameter used anywhere in the hot path? If not,
> should __read_mostly perhaps be left out?
not in hot path, __read_mostly can be removed.
>
> > +module_param_named(port_nr, port_nr, int, 0444);
> > +MODULE_PARM_DESC(port_nr,
> > +              "The port number server is listening on (default: "
>                                 ^^^
>                                 the?
right!
> > +              __stringify(RTRS_PORT)")");
> > +
> > +#define DEFAULT_DEV_SEARCH_PATH "/"
>
> > +static void destroy_device(struct rnbd_srv_dev *dev)
> > +{
> > +     WARN(!list_empty(&dev->sess_dev_list),
> > +          "Device %s is being destroyed but still in use!\n",
> > +          dev->id);
>
> Has it been considered to change WARN() into WARN_ONCE()?
ok.
>
> > +static int rnbd_srv_rdma_ev(struct rtrs_srv *rtrs, void *priv,
> > +                          struct rtrs_srv_op *id, int dir,
> > +                          void *data, size_t datalen, const void *usr,
> > +                          size_t usrlen)
> > +{
> > +     struct rnbd_srv_session *srv_sess = priv;
> > +     const struct rnbd_msg_hdr *hdr = usr;
> > +     int ret = 0;
> > +     u16 type;
> > +
> > +     if (WARN_ON(!srv_sess))
> > +             return -ENODEV;
>
> Same question here: how about using WARN_ON_ONCE() instead of WARN_ON()?
ok.
>
> > +static char *rnbd_srv_get_full_path(struct rnbd_srv_session *srv_sess,
> > +                                  const char *dev_name)
> > +{
> > +     char *full_path;
> > +     char *a, *b;
> > +
> > +     full_path = kmalloc(PATH_MAX, GFP_KERNEL);
> > +     if (!full_path)
> > +             return ERR_PTR(-ENOMEM);
> > +
> > +     /*
> > +      * Replace %SESSNAME% with a real session name in order to
> > +      * create device namespace.
> > +      */
> > +     a = strnstr(dev_search_path, "%SESSNAME%", sizeof(dev_search_path));
> > +     if (a) {
> > +             int len = a - dev_search_path;
> > +
> > +             len = snprintf(full_path, PATH_MAX, "%.*s/%s/%s", len,
> > +                            dev_search_path, srv_sess->sessname, dev_name);
> > +             if (len >= PATH_MAX) {
> > +                     pr_err("Tooooo looong path: %s, %s, %s\n",
> > +                            dev_search_path, srv_sess->sessname, dev_name);
> > +                     kfree(full_path);
> > +                     return ERR_PTR(-EINVAL);
> > +             }
> > +     } else {
> > +             snprintf(full_path, PATH_MAX, "%s/%s",
> > +                      dev_search_path, dev_name);
> > +     }
>
> Has it been considered to use kasprintf() instead of kmalloc() + snprintf()?
will convert to kasprintf.
>
> Otherwise this patch looks fine to me.
>
> Thanks,
>
> Bart.
Thanks Bart!

  reply	other threads:[~2020-03-31  9:29 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-20 12:16 [PATCH v11 00/26] RTRS (former IBTRS) RDMA Transport Library and RNBD (former IBNBD) RDMA Network Block Device Jack Wang
2020-03-20 12:16 ` [PATCH v11 01/26] sysfs: export sysfs_remove_file_self() Jack Wang
2020-03-20 12:16 ` [PATCH v11 02/26] RDMA/rtrs: public interface header to establish RDMA connections Jack Wang
2020-03-20 12:16 ` [PATCH v11 03/26] RDMA/rtrs: private headers with rtrs protocol structs and helpers Jack Wang
2020-03-20 12:16 ` [PATCH v11 04/26] RDMA/rtrs: core: lib functions shared between client and server modules Jack Wang
2020-03-28  4:26   ` Bart Van Assche
2020-03-30 10:34     ` Jinpu Wang
2020-03-30 22:25       ` Bart Van Assche
2020-03-31  7:11         ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 05/26] RDMA/rtrs: client: private header with client structs and functions Jack Wang
2020-03-20 12:16 ` [PATCH v11 06/26] RDMA/rtrs: client: main functionality Jack Wang
2020-03-20 12:16 ` [PATCH v11 07/26] RDMA/rtrs: client: statistics functions Jack Wang
2020-03-20 12:16 ` [PATCH v11 08/26] RDMA/rtrs: client: sysfs interface functions Jack Wang
2020-03-30 22:28   ` Bart Van Assche
2020-03-31  7:20     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 09/26] RDMA/rtrs: server: private header with server structs and functions Jack Wang
2020-03-20 12:16 ` [PATCH v11 10/26] RDMA/rtrs: server: main functionality Jack Wang
2020-03-20 12:16 ` [PATCH v11 11/26] RDMA/rtrs: server: statistics functions Jack Wang
2020-03-20 12:16 ` [PATCH v11 12/26] RDMA/rtrs: server: sysfs interface functions Jack Wang
2020-03-30 22:29   ` Bart Van Assche
2020-03-31  7:13     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 13/26] RDMA/rtrs: include client and server modules into kernel compilation Jack Wang
2020-03-20 12:16 ` [PATCH v11 14/26] RDMA/rtrs: a bit of documentation Jack Wang
2020-03-20 12:16 ` [PATCH v11 15/26] block: reexport bio_map_kern Jack Wang
2020-03-28  3:58   ` Bart Van Assche
2020-03-28  8:29     ` Christoph Hellwig
2020-03-28 16:16       ` Bart Van Assche
2020-03-29 15:05         ` Christoph Hellwig
2020-03-29 18:08           ` Chaitanya Kulkarni
2020-03-30  6:28             ` hch
2020-03-30 10:44           ` Jinpu Wang
2020-03-30 18:57             ` Chaitanya Kulkarni
2020-03-20 12:16 ` [PATCH v11 16/26] block/rnbd: private headers with rnbd protocol structs and helpers Jack Wang
2020-03-28  4:58   ` Bart Van Assche
2020-03-31  7:32     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 17/26] block/rnbd: client: private header with client structs and functions Jack Wang
2020-03-28  4:26   ` Bart Van Assche
2020-03-31  9:08     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 18/26] block/rnbd: client: main functionality Jack Wang
2020-03-28  4:45   ` Bart Van Assche
2020-03-31  9:23     ` Jinpu Wang
2020-04-02 16:27       ` Jinpu Wang
2020-03-28  4:59   ` Bart Van Assche
2020-03-31  9:25     ` Jinpu Wang
2020-03-31 14:12       ` Bart Van Assche
2020-03-31 14:20         ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 19/26] block/rnbd: client: sysfs interface functions Jack Wang
2020-03-28  4:59   ` Bart Van Assche
2020-03-31  9:26     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 20/26] block/rnbd: server: private header with server structs and functions Jack Wang
2020-03-20 12:16 ` [PATCH v11 21/26] block/rnbd: server: main functionality Jack Wang
2020-03-28 17:40   ` Bart Van Assche
2020-03-31  9:29     ` Jinpu Wang [this message]
2020-03-31 15:32       ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 22/26] block/rnbd: server: functionality for IO submission to file or block dev Jack Wang
2020-03-28 18:39   ` Bart Van Assche
2020-03-31 10:06     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 23/26] block/rnbd: server: sysfs interface functions Jack Wang
2020-03-28 19:31   ` Bart Van Assche
2020-03-28 23:06     ` Jason Gunthorpe
2020-03-30 13:14     ` Danil Kipnis
2020-03-20 12:16 ` [PATCH v11 24/26] block/rnbd: include client and server modules into kernel compilation Jack Wang
2020-03-28 19:34   ` Bart Van Assche
2020-03-31  7:23     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 25/26] block/rnbd: a bit of documentation Jack Wang
2020-03-28 19:40   ` Bart Van Assche
2020-03-30 10:17     ` Danil Kipnis
2020-03-20 12:16 ` [PATCH v11 26/26] MAINTAINERS: Add maintainers for RNBD/RTRS modules Jack Wang
2020-03-28 19:40   ` Bart Van Assche
2020-03-30 10:12     ` Danil Kipnis
2020-03-26 17:38 ` [PATCH v11 00/26] RTRS (former IBTRS) RDMA Transport Library and RNBD (former IBNBD) RDMA Network Block Device Jinpu Wang

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='CAMGffE=4LNom-aWJhogqjgD+mHPp1_B9g=rEzHzdr=x9Zy6vAw@mail.gmail.com' \
    --to=jinpu.wang@cloud.ionos.com \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=danil.kipnis@cloud.ionos.com \
    --cc=dledford@redhat.com \
    --cc=hch@infradead.org \
    --cc=jgg@ziepe.ca \
    --cc=leon@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=pankaj.gupta@cloud.ionos.com \
    --cc=rpenyaev@suse.de \
    --cc=sagi@grimberg.me \
    /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.