From: Kevin Wolf <kwolf@redhat.com>
To: Charlie Shepherd <charlie@ctshepherd.com>
Cc: pbonzini@redhat.com, gabriel@kerneis.info, qemu-devel@nongnu.org,
stefanha@gmail.com
Subject: Re: [Qemu-devel] RFC: [PATCH 0/5] Explicitly annotating coroutine_fn functions
Date: Thu, 8 Aug 2013 09:15:53 +0200 [thread overview]
Message-ID: <20130808071553.GB3119@dhcp-200-207.str.redhat.com> (raw)
In-Reply-To: <5202F2CE.60602@ctshepherd.com>
Am 08.08.2013 um 03:22 hat Charlie Shepherd geschrieben:
> On 06/08/2013 10:37, Kevin Wolf wrote:
> >Am 05.08.2013 um 20:44 hat Charlie Shepherd geschrieben:
> >>This patch series is a follow up to a previous RFC about converting functions
> >>that dynamically yield execution depending on whether they are in executing in
> >>a coroutine context or not to be explicitly statically annotated. This change
> >>is necessary for the GSoC CPC project, but was also agreed in an IRC
> >>conversation on #qemu to be benefical overall if it can be upstream before the
> >>end of the project. This is an update to see if the approach I'm taking to
> >>implementing this conversion is correct.
> >>
> >>In order to statically check the tree to ensure the annotations are correct,
> >>I've been using CPC to compile the QEMU tree. This does a source to source
> >>translation to convert coroutine code to continuation-passing style (the
> >>purpose of the GSoC project), but as a side benefit statically checks
> >>annotations (any functions annotated with coroutine_fn are transformed into
> >>CPS, so have a different "calling style" to the standard C convention).
> >>
> >>In order to compile the tree with CPC:
> >> $ git clone git://github.com/kerneis/cpc.git
> >> $ cd cpc
> >> $ make
> >> $ ./configure
> >> $ make
> >> $ cd ..
> >> $ export CPC=$(pwd)/cpc/bin/cpc
> >> $ cd qemu
> >> $ mkdir -p bin/cpc
> >> $ cd bin/cpc
> >> $ ../../configure --enable-debug --disable-werror --target-list=x86_64-softmmu --cc="$CPC" --extra-cflags="--noMakeStaticGlobal --useLogicalOperators --useCaseRange --save-temps -U__SSE2__ -w -Dcoroutine_fn='__attribute__((__cps__))' --docpsInference --warnall "
> >> $ make
> >Against which tree is this? It didn't apply on top of qemu-git master,
> >nor on my block branch.
>
> Sorry, just to clarify, this isn't based on QEMU but is a repository
> containing the CPC tool, which can then be used to statically check
> QEMU; you'll need to clone it into its own repo. In this example it
> should be a sibling directory to whichever QEMU checkout you're
> testing it on.
Sorry, the quoted cover letter text was probably more confusing than
helpful. I meant what qemu tree your patch series is against.
Kevin
next prev parent reply other threads:[~2013-08-08 7:16 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-05 18:44 [Qemu-devel] RFC: [PATCH 0/5] Explicitly annotating coroutine_fn functions Charlie Shepherd
2013-08-05 18:44 ` [Qemu-devel] [PATCH 1/5] Add an explanation of when a function should be marked coroutine_fn Charlie Shepherd
2013-08-06 8:39 ` Stefan Hajnoczi
2013-08-08 1:20 ` Charlie Shepherd
2013-08-05 18:44 ` [Qemu-devel] [PATCH 2/5] qemu_coroutine_self should not be marked coroutine_fn as it cannot yield Charlie Shepherd
2013-08-07 19:18 ` Stefan Hajnoczi
2013-08-07 22:13 ` Gabriel Kerneis
2013-08-08 1:29 ` Charlie Shepherd
2013-08-08 6:16 ` Gabriel Kerneis
2013-08-08 9:10 ` Charlie Shepherd
2013-08-08 9:12 ` Gabriel Kerneis
2013-08-08 1:25 ` Charlie Shepherd
2013-08-05 18:44 ` [Qemu-devel] [PATCH 3/5] Convert BlockDriver to explicit coroutine annotations Charlie Shepherd
2013-08-05 19:23 ` Gabriel Kerneis
2013-08-05 19:33 ` Charlie Shepherd
2013-08-05 20:05 ` Gabriel Kerneis
2013-08-06 9:04 ` Kevin Wolf
2013-08-07 19:30 ` Stefan Hajnoczi
2013-08-08 1:31 ` Charlie Shepherd
2013-08-08 6:27 ` Gabriel Kerneis
2013-08-06 9:24 ` Kevin Wolf
2013-08-08 1:14 ` Charlie Shepherd
2013-08-05 18:44 ` [Qemu-devel] [PATCH 4/5] Convert block functions to coroutine versions Charlie Shepherd
2013-08-05 20:01 ` Gabriel Kerneis
2013-08-06 9:36 ` Kevin Wolf
2013-08-08 1:17 ` Charlie Shepherd
2013-08-05 18:44 ` [Qemu-devel] [PATCH 5/5] Convert block layer callers' annotations Charlie Shepherd
2013-08-05 20:15 ` Gabriel Kerneis
2013-08-08 1:19 ` Charlie Shepherd
2013-08-05 19:25 ` [Qemu-devel] RFC: [PATCH 0/5] Explicitly annotating coroutine_fn functions Charlie Shepherd
2013-08-06 7:06 ` Gabriel Kerneis
2013-08-06 9:37 ` Kevin Wolf
2013-08-08 1:22 ` Charlie Shepherd
2013-08-08 7:15 ` Kevin Wolf [this message]
2013-08-08 9:36 ` Charlie Shepherd
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=20130808071553.GB3119@dhcp-200-207.str.redhat.com \
--to=kwolf@redhat.com \
--cc=charlie@ctshepherd.com \
--cc=gabriel@kerneis.info \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.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 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).