[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] RFC: [PATCH 0/5] Explicitly annotating coroutine_fn fun
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] RFC: [PATCH 0/5] Explicitly annotating coroutine_fn functions |
Date: |
Thu, 8 Aug 2013 09:15:53 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
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
- Re: [Qemu-devel] [PATCH 4/5] Convert block functions to coroutine versions, (continued)