From mboxrd@z Thu Jan 1 00:00:00 1970 From: Loic Dachary Subject: Re: PG statechart Date: Sat, 27 Apr 2013 06:21:17 +0200 Message-ID: <517B523D.8000503@dachary.org> References: <517A9B3A.3080806@dachary.org> <281AE624-F6F6-4376-8130-77608D174646@inktank.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigC9A55D43661D246AA1527019" Return-path: Received: from smtp.dmail.dachary.org ([86.65.39.20]:55626 "EHLO smtp.dmail.dachary.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750727Ab3D0EVX (ORCPT ); Sat, 27 Apr 2013 00:21:23 -0400 In-Reply-To: <281AE624-F6F6-4376-8130-77608D174646@inktank.com> Sender: ceph-devel-owner@vger.kernel.org List-ID: To: Noah Watkins Cc: Ceph Development This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigC9A55D43661D246AA1527019 Content-Type: multipart/mixed; boundary="------------080809050309060006000207" This is a multi-part message in MIME format. --------------080809050309060006000207 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 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: >=20 > http://rtime.felk.cvut.cz/statechart-viewer/ >=20 > Having trouble with my LLVM environment on 12.04, so I haven't tested i= t. >=20 > -Noah >=20 > On Apr 26, 2013, at 8:20 AM, Loic Dachary wrote: >=20 >> Hi, >> >> I was considering drawing a statechart ( http://www.math-cs.gordon.edu= /courses/cs211/ATMExample/SessionStatechart.gif ) to better understand th= e 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 ?=20 >> >> /me hopefull ;-) >> >> --=20 >> Lo=EFc Dachary, Artisan Logiciel Libre >> >=20 --=20 Lo=EFc Dachary, Artisan Logiciel Libre --------------080809050309060006000207 Content-Type: application/pdf; name="PG.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="PG.pdf" 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 Ci9QYXJlbnQgMyAwIFIKL1Jlc291cmNlczw8L1Byb2NTZXRbL1BERiAvVGV4dF0KL0V4dEdT dGF0ZSAxMCAwIFIKL0ZvbnQgMTEgMCBSCj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoK MyAwIG9iago8PCAvVHlwZSAvUGFnZXMgL0tpZHMgWwo0IDAgUgpdIC9Db3VudCAxCj4+CmVu ZG9iagoxIDAgb2JqCjw8L1R5cGUgL0NhdGFsb2cgL1BhZ2VzIDMgMCBSCi9NZXRhZGF0YSAx MyAwIFIKPj4KZW5kb2JqCjcgMCBvYmoKPDwvVHlwZS9FeHRHU3RhdGUKL09QTSAxPj5lbmRv YmoKMTAgMCBvYmoKPDwvUjcKNyAwIFI+PgplbmRvYmoKMTEgMCBvYmoKPDwvUjgKOCAwIFI+ PgplbmRvYmoKOCAwIG9iago8PC9CYXNlRm9udC9WUlFTTEErVGltZXMtUm9tYW4vRm9udERl c2NyaXB0b3IgOSAwIFIvVHlwZS9Gb250Ci9GaXJzdENoYXIgNjUvTGFzdENoYXIgMTIyL1dp ZHRoc1sgNzIyIDY2NyA2NjcgNzIyIDAgNTU2IDcyMiAwIDMzMyAwIDAgNjExIDg4OSA3MjIg MAo1NTYgMCA2NjcgNTU2IDYxMSA3MjIgMCA5NDQgMCAwIDAgMCAwIDAgMCA1MDAKMCA0NDQg NTAwIDQ0NCA1MDAgNDQ0IDMzMyA1MDAgNTAwIDI3OCAwIDUwMCAyNzggNzc4IDUwMCA1MDAK NTAwIDUwMCAzMzMgMzg5IDI3OCA1MDAgNTAwIDAgMCA1MDAgNDQ0XQovRW5jb2RpbmcvV2lu QW5zaUVuY29kaW5nL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKOSAwIG9iago8PC9UeXBlL0Zv bnREZXNjcmlwdG9yL0ZvbnROYW1lL1ZSUVNMQStUaW1lcy1Sb21hbi9Gb250QkJveFswIC0y MTggOTMyIDY4M10vRmxhZ3MgMzIKL0FzY2VudCA2ODMKL0NhcEhlaWdodCA2NzYKL0Rlc2Nl bnQgLTIxOAovSXRhbGljQW5nbGUgMAovU3RlbVYgMTM5Ci9NaXNzaW5nV2lkdGggNTAwCi9Y SGVpZ2h0IDQ2MQovQ2hhclNldCgvQS9CL0MvRC9GL0cvSS9ML00vTi9QL1IvUy9UL1UvVy9h L2IvYy9kL2UvZi9nL2gvaS9rL2wvbS9uL28vcC9xL3Ivcy90L3UvdW5kZXJzY29yZS92L3kv eikvRm9udEZpbGUzIDEyIDAgUj4+CmVuZG9iagoxMiAwIG9iago8PC9GaWx0ZXIvRmxhdGVE ZWNvZGUKL1N1YnR5cGUvVHlwZTFDL0xlbmd0aCA0NTYzPj5zdHJlYW0KeJxtWHlYU9e+PTHk 7FOrtJLmStQmvNZWq9Vaa1uotg441IoWEZBBBZTIYIAwhSRkJAnTJgEykAFIZDABQQaZHECq omJrJ1utdrjoe+3teNvS3nf3oYf3vbuj9737x3vfx5ePcM4+Z++11m/91g8WETSHYLFY82Kz ckSFq2LyctJyA9+fpxez6CVz6CfZkMn9I3xmI+dJIqqZPR/OY8N5QceXcI0h6L8XoJ7HkOFx gs1iySztkXkSeUFWRmZR2PK4mP3PrVz5/L/+8mJERETYYfn/XAnbKirMysgNexb/IhWJ8yQ5 otyi9WGR+G6xOOtIWIZYLsksDEtLTxelB5bFp4lFx8K2Z4mzJJI8adjyyOfC1q5Z8+Iq/PHy nqycw8WFYQ92HrYnLyIsKixGlFEsTiv4v1cIgli+OXdLXqRka37B9sIdRcU7pWmHo+RHdivS 94iORmdkxmTtiz0WJ87Zn0IQTxFvE08T0cRSYi/xDBFD7COWEbHEciKOiCdWEPuJLUQksYpI IrYSq4lkYhvxArGd2EG8SLxJ7CReIt4i1hEvE1HEK8RuYg8RTmwinsNIE0GEiPiMVcq6Nuf1 OePsCHZ/0ONBag6P004CUkYOgCfAMBVCZVDfPrLxke5HfpmbO/erRzc86pq3YN538w/N/y54 e/C3j6177L3H1z8uW7B8wcCCCboyeOYo9KKEQfrfvKyZeA/vkFlnz7zFmOgboSUkkz6r2cU8 qylNruLLUJIHJJc4/Q6zq84pPIse4SA3ObjSIbHkQxUfFij08dWUDFnBrBrZeQggP6IYPyeY roRuetEl1hdTaOsUu5F+ildvttc0QMpvUyYJmRoAY7SqhApKiTLdIKFW6YC9FDoFzp9pcXRD arRNvFPIiACMUisSAzelu0FSncYBRykkB9+nXN58UKzYtUPwOTCYkuRZ2thSfvDMC9Aj66Pv 9ck8IYgzjcqnX0NgITe7aWYFj+uWgalyhxZupmajAdysVodXUtxsGfp3cBfePN53qrfLewae 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 caMHNsC2VvvFGgylVwYmqu1lp9Z3R4SGMT3MUnqeobmiKRB2WlyWC2Z8S5UMXCh3y/tWobjZ U6FuEmeX9Wjd7HqOm7yHXHY/YqFznvEG2zv2B1P3gjFW4JM3NluZCIJLvHS8F8V6yc659x7t tM6bd6953nyC+Af2t1lECmVuZHN0cmVhbQplbmRvYmoKMTMgMCBvYmoKPDwvVHlwZS9NZXRh ZGF0YQovU3VidHlwZS9YTUwvTGVuZ3RoIDEzNTg+PnN0cmVhbQo8P3hwYWNrZXQgYmVnaW49 J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pgo8P2Fkb2JlLXhhcC1maWx0 ZXJzIGVzYz0iQ1JMRiI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9J2Fkb2JlOm5zOm1ldGEvJyB4 OnhtcHRrPSdYTVAgdG9vbGtpdCAyLjkuMS0xMywgZnJhbWV3b3JrIDEuNic+CjxyZGY6UkRG IHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5z IycgeG1sbnM6aVg9J2h0dHA6Ly9ucy5hZG9iZS5jb20vaVgvMS4wLyc+CjxyZGY6RGVzY3Jp cHRpb24gcmRmOmFib3V0PSd1dWlkOmJjYTFlMjU5LWU3MGQtMTFlZC0wMDAwLWFlZTJlZWRk ZTA4YycgeG1sbnM6cGRmPSdodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvJyBwZGY6UHJv ZHVjZXI9J0dQTCBHaG9zdHNjcmlwdCA5LjA3Jy8+CjxyZGY6RGVzY3JpcHRpb24gcmRmOmFi b3V0PSd1dWlkOmJjYTFlMjU5LWU3MGQtMTFlZC0wMDAwLWFlZTJlZWRkZTA4YycgeG1sbnM6 eG1wPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvJz48eG1wOk1vZGlmeURhdGU+MjAx My0wNC0yN1QwNDoxNjowOVo8L3htcDpNb2RpZnlEYXRlPgo8eG1wOkNyZWF0ZURhdGU+MjAx My0wNC0yN1QwNDoxNjowOVo8L3htcDpDcmVhdGVEYXRlPgo8eG1wOkNyZWF0b3JUb29sPmdy YXBodml6IHZlcnNpb24gMi4yNi4zICgyMDEwMDEyNi4xNjAwKTwveG1wOkNyZWF0b3JUb29s PjwvcmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDpi Y2ExZTI1OS1lNzBkLTExZWQtMDAwMC1hZWUyZWVkZGUwOGMnIHhtbG5zOnhhcE1NPSdodHRw Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vJyB4YXBNTTpEb2N1bWVudElEPSd1dWlkOmJj YTFlMjU5LWU3MGQtMTFlZC0wMDAwLWFlZTJlZWRkZTA4YycvPgo8cmRmOkRlc2NyaXB0aW9u IHJkZjphYm91dD0ndXVpZDpiY2ExZTI1OS1lNzBkLTExZWQtMDAwMC1hZWUyZWVkZGUwOGMn IHhtbG5zOmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLycgZGM6Zm9ybWF0 PSdhcHBsaWNhdGlvbi9wZGYnPjxkYzp0aXRsZT48cmRmOkFsdD48cmRmOmxpIHhtbDpsYW5n PSd4LWRlZmF1bHQnPnN0YXRlY2hhcnRzPC9yZGY6bGk+PC9yZGY6QWx0PjwvZGM6dGl0bGU+ PC9yZGY6RGVzY3JpcHRpb24+CjwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0ndyc/PgplbmRzdHJl YW0KZW5kb2JqCjIgMCBvYmoKPDwvUHJvZHVjZXIoR1BMIEdob3N0c2NyaXB0IDkuMDcpCi9D cmVhdGlvbkRhdGUoRDoyMDEzMDQyNzA0MTYwOVowMCcwMCcpCi9Nb2REYXRlKEQ6MjAxMzA0 MjcwNDE2MDlaMDAnMDAnKQovQ3JlYXRvcihncmFwaHZpeiB2ZXJzaW9uIDIuMjYuMyBcKDIw MTAwMTI2LjE2MDBcKSkKL1RpdGxlKHN0YXRlY2hhcnRzKT4+ZW5kb2JqCnhyZWYKMCAxNAow MDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDY1OTMgMDAwMDAgbiAKMDAwMDAxMzUxMCAwMDAw MCBuIAowMDAwMDA2NTM0IDAwMDAwIG4gCjAwMDAwMDYzODEgMDAwMDAgbiAKMDAwMDAwMDAx NSAwMDAwMCBuIAowMDAwMDA2MzYxIDAwMDAwIG4gCjAwMDAwMDY2NTggMDAwMDAgbiAKMDAw MDAwNjc1OSAwMDAwMCBuIAowMDAwMDA3MTEwIDAwMDAwIG4gCjAwMDAwMDY2OTkgMDAwMDAg biAKMDAwMDAwNjcyOSAwMDAwMCBuIAowMDAwMDA3NDI3IDAwMDAwIG4gCjAwMDAwMTIwNzUg MDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSAxNCAvUm9vdCAxIDAgUiAvSW5mbyAyIDAgUgov SUQgWzwwNzQzNkFBN0I1MjY1Njc0OUZCQTAxNzg5RDMwNUNFND48MDc0MzZBQTdCNTI2NTY3 NDlGQkEwMTc4OUQzMDVDRTQ+XQo+PgpzdGFydHhyZWYKMTM3MDUKJSVFT0YK --------------080809050309060006000207-- --------------enigC9A55D43661D246AA1527019 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAlF7Uj4ACgkQ8dLMyEl6F227owCgg/5GEc38oP+dVTxOs6c5R8qd AckAnj3paCJMC1P8NueAyq43l3xWQf0q =5iUY -----END PGP SIGNATURE----- --------------enigC9A55D43661D246AA1527019--