All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: pkrempa@redhat.com, Alberto Garcia <berto@igalia.com>,
	slp@redhat.com, qemu-block@nongnu.org, qemu-devel@nongnu.org,
	rjones@redhat.com, mreitz@redhat.com,
	Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	Klaus Jensen <its@irrelevant.dk>,
	philmd@redhat.com, Markus Armbruster <armbru@redhat.com>,
	sgarzare@redhat.com
Subject: Re: [ANNOUNCE] libblkio v0.1.0 preview release
Date: Tue, 18 May 2021 10:02:53 +0200	[thread overview]
Message-ID: <YKN0rU9GRLtRx4oB@merkur.fritz.box> (raw)
In-Reply-To: <YKJ5B9F+uvjzM2Uh@stefanha-x1.localdomain>

[-- Attachment #1: Type: text/plain, Size: 4148 bytes --]

Am 17.05.2021 um 16:09 hat Stefan Hajnoczi geschrieben:
> On Fri, May 14, 2021 at 05:55:13PM +0200, Kevin Wolf wrote:
> > Am 13.05.2021 um 11:47 hat Stefan Hajnoczi geschrieben:
> > > On Thu, May 06, 2021 at 12:33:24PM +0200, Kevin Wolf wrote:
> > > > Am 06.05.2021 um 10:46 hat Stefan Hajnoczi geschrieben:
> > > > > What do you think about this:
> > > > > 
> > > > > The blkio instance states are:
> > > > > 
> > > > >   created -> attached -> started -> destroyed
> > > > > 
> > > > > It is not possible to go backwards anymore, which simplifies driver
> > > > > implementations and it probably won't be needed by applications.
> > > > > 
> > > > > The "initialized" state is renamed to "attached" to make it clearer that
> > > > > this means the block device has been connected/opened. Also
> > > > > "initialized" can be confused with "created".
> > > > > 
> > > > > The corresponding APIs are:
> > > > > 
> > > > > int blkio_create(const char *driver, struct blkio **bp, char **errmsg);
> > > > > int blkio_attach(struct blkio *bp, char **errmsg);
> > > > > int blkio_start(struct blkio *bp, char **errmsg);
> > > > > void blkio_destroy(struct blkio **bp);
> > > > > 
> > > > > There is no way to query the state here, but that probably isn't
> > > > > necessary since an application setting up the blkio instance must
> > > > > already be aware of the state in order to configure it in the first
> > > > > place.
> > > > > 
> > > > > One advantage of this approach is that it can support network drivers
> > > > > where the attach and start operations can take a long time while regular
> > > > > property accesses do not block.
> > > > 
> > > > I like this.
> > > > 
> > > > For properties, I think, each property will have a first state in which
> > > > it becomes available and then it will be available in all later states,
> > > > too.
> > > > 
> > > > Currently, apart from properties that are always read-only, we only have
> > > > properties that are rw only in their first state and become read-only in
> > > > later states. It might be reasonable to assume that properties will
> > > > exist that can be rw in all later states, too.
> > > > 
> > > > In their first state, most properties only store the value into the
> > > > config and it's the next state transition that actually makes use of
> > > > them. Similarly, reading usually only reads the value from the config.
> > > > So these parts can be automatically covered. Usually you would then only
> > > > need a custom implementation for property updates after the fact. I
> > > > think this could simplify the driver implementations a lot. I'll play
> > > > with this a bit more.
> > > 
> > > Hi Kevin,
> > > I posted a patch that introduces blkio_connect() and blkio_start():
> > > https://gitlab.com/libblkio/libblkio/-/merge_requests/4
> > 
> > Assuming that you want review to happen on Gitlab, I added a few
> > comments there.
> > 
> > I'm not sure if you saw it, but on Wednesday, I also created a merge
> > request for some first changes to reduce the properties boilerplate in
> > the iouring module that would otherwise be duplicated for every new
> > driver. Not sure if everything is a good idea, but the first patch is
> > almost certainly one.
> > 
> > (However, I just realised that the test failure is not the same as on
> > main, so I degraded it to a draft now. It also conflicts with your merge
> > request. Next thing to learn for me is how to respin a merge request on
> > Gitlab... You may want to have a look anyway.)
> 
> Awesome, I will take a look, thanks. I need to tweak my GitLab
> notification options :-).
> 
> You can force push to your topic branch to respin the merge request.

Ah, that sounds easy enough. On the other hand, it means I can't work in
the branch any more without automatically updating the merge request, so
a branch used for a merge request is burned in a way. I should have
created a separate branch for this.

Looks like I need to familiarise myself more with the Gitlab process
before I can expect it to work well for me. :-)

Kevin

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

      reply	other threads:[~2021-05-18  8:06 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-29 14:05 [ANNOUNCE] libblkio v0.1.0 preview release Stefan Hajnoczi
2021-04-29 14:22 ` Richard W.M. Jones
2021-04-29 14:41   ` Stefan Hajnoczi
2021-04-29 15:00     ` Richard W.M. Jones
2021-04-29 15:08       ` Daniel P. Berrangé
2021-04-29 15:31         ` Richard W.M. Jones
2021-04-29 15:35           ` Daniel P. Berrangé
2021-04-29 17:17         ` libnbd thread-local errors and dlclose (was: Re: [ANNOUNCE] libblkio v0.1.0 preview release) Richard W.M. Jones
2021-04-29 17:27           ` Daniel P. Berrangé
2021-04-30 16:20       ` [ANNOUNCE] libblkio v0.1.0 preview release Stefan Hajnoczi
2021-04-29 15:51 ` Kevin Wolf
2021-04-30 15:49   ` Stefan Hajnoczi
2021-05-04 13:44     ` Kevin Wolf
2021-05-05 16:19       ` Stefan Hajnoczi
2021-05-05 16:46         ` Kevin Wolf
2021-05-06  8:46           ` Stefan Hajnoczi
2021-05-06 10:33             ` Kevin Wolf
2021-05-06 13:53               ` Stefan Hajnoczi
2021-05-13  9:47               ` Stefan Hajnoczi
2021-05-14 15:55                 ` Kevin Wolf
2021-05-17 14:09                   ` Stefan Hajnoczi
2021-05-18  8:02                     ` Kevin Wolf [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=YKN0rU9GRLtRx4oB@merkur.fritz.box \
    --to=kwolf@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berto@igalia.com \
    --cc=its@irrelevant.dk \
    --cc=mreitz@redhat.com \
    --cc=philmd@redhat.com \
    --cc=pkrempa@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rjones@redhat.com \
    --cc=sgarzare@redhat.com \
    --cc=slp@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=vsementsov@virtuozzo.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.