All of lore.kernel.org
 help / color / mirror / Atom feed
From: Loic Dachary <loic@dachary.org>
To: Samuel Just <sam.just@inktank.com>
Cc: Ceph Development <ceph-devel@vger.kernel.org>
Subject: Re: PG statechart
Date: Sat, 27 Apr 2013 11:16:22 +0200	[thread overview]
Message-ID: <517B9766.3060409@dachary.org> (raw)
In-Reply-To: <CA+4uBUbAuXPRyG_EuH12yXkLSu6_my1HzqcUmXvKCRkA50vWFA@mail.gmail.com>

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

Hi Sam,

I missed this one, thanks for the link :-) It is also a little easier because
http://rtime.felk.cvut.cz/statechart-viewer/
complains about missing react for NullEvt and requires the following hack to work

diff --git a/src/osd/PG.h b/src/osd/PG.h
index 578afd3..f6446a9 100644
--- a/src/osd/PG.h
+++ b/src/osd/PG.h
@@ -1332,6 +1332,7 @@ public:
       boost::statechart::result react(const Load&);
       boost::statechart::result react(const MNotifyRec&);
       boost::statechart::result react(const MInfoRec&);
+      boost::statechart::result react(const NullEvt&);
       boost::statechart::result react(const MLogRec&);
       boost::statechart::result react(const boost::statechart::event_base&) {
        return discard_event();
@@ -1353,6 +1354,7 @@ public:
       boost::statechart::result react(const QueryState& q);
       boost::statechart::result react(const AdvMap&);
       boost::statechart::result react(const ActMap&);
+      boost::statechart::result react(const NullEvt&);
       boost::statechart::result react(const FlushedEvt&);
       boost::statechart::result react(const boost::statechart::event_base&) {
        return discard_event();
@@ -1374,6 +1376,7 @@ public:
        > reactions;
       boost::statechart::result react(const QueryState& q);
       boost::statechart::result react(const AdvMap&);
+      boost::statechart::result react(const NullEvt&);
       boost::statechart::result react(const FlushedEvt&);
       boost::statechart::result react(const boost::statechart::event_base&) {
        return discard_event();


Cheers

On 04/27/2013 10:08 AM, Samuel Just wrote:
> There is actually a peering state diagram generated with the docs:
> http://ceph.com/docs/master/dev/peering/
> 
> Unfortunately, the image comes out rather small, you can generate it
> for yourself with the script at doc/scripts/gen_state_diagram.py.
>>From admin/build_doc:
> 
> cat src/osd/PG.h src/osd/PG.cc | doc/scripts/gen_state_diagram.py >
> doc/dev/peering_graph.generated.dot
> 
> It's similar to the boost generated one, but also includes most of the
> state transitions from within the custom_reaction state chart
> reactions.
> -Sam
> 
> On Fri, Apr 26, 2013 at 9:49 PM, Noah Watkins <noah.watkins@inktank.com> wrote:
>> Very cool!
>>
>> On Apr 26, 2013, at 9:21 PM, Loic Dachary <loic@dachary.org> wrote:
>>
>>> Hi Noah,
>>>
>>> Nice tool :-) Here is the statechart generated from PG.h.
>>>
>>> Cheers
>>>
>>> On 04/26/2013 06:07 PM, Noah Watkins wrote:
>>>> Boost Statechart Viewer generates GraphViz:
>>>>
>>>>  http://rtime.felk.cvut.cz/statechart-viewer/
>>>>
>>>> Having trouble with my LLVM environment on 12.04, so I haven't tested it.
>>>>
>>>> -Noah
>>>>
>>>> On Apr 26, 2013, at 8:20 AM, Loic Dachary <loic@dachary.org> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I was considering drawing a statechart ( http://www.math-cs.gordon.edu/courses/cs211/ATMExample/SessionStatechart.gif ) to better understand the transitions of PG
>>>>>
>>>>> https://github.com/ceph/ceph/blob/master/src/osd/PG.h#L1341
>>>>>
>>>>> and realized that it probably already exists somewhere. Does it ?
>>>>>
>>>>> /me hopefull ;-)
>>>>>
>>>>> --
>>>>> Loďc Dachary, Artisan Logiciel Libre
>>>>>
>>>>
>>>
>>> --
>>> Loďc Dachary, Artisan Logiciel Libre
>>> <PG.pdf>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Loïc Dachary, Artisan Logiciel Libre


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

      reply	other threads:[~2013-04-27  9:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-26 15:20 PG statechart Loic Dachary
2013-04-26 16:07 ` Noah Watkins
2013-04-27  4:21   ` Loic Dachary
2013-04-27  4:49     ` Noah Watkins
2013-04-27  8:08       ` Samuel Just
2013-04-27  9:16         ` Loic Dachary [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=517B9766.3060409@dachary.org \
    --to=loic@dachary.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=sam.just@inktank.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.