From: Anthony Liguori <aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
To: ron minnich <rminnich-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Jimi Xenidis <jimix-aZOuKsOsJu3MbYB6QlFGEg@public.gmane.org>,
"jmk-zzFmDc4TPjtKvsKVC3L/VUEOCMrvLtNR@public.gmane.org"
<jmk-zzFmDc4TPjtKvsKVC3L/VUEOCMrvLtNR@public.gmane.org>,
Christian Borntraeger
<cborntra-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>,
"kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org"
<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
Martin Schwidefsky
<schwidefsky-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH/RFC 7/9] Virtual network guest device driver
Date: Fri, 11 May 2007 15:12:05 -0500 [thread overview]
Message-ID: <4644CE15.6080505@us.ibm.com> (raw)
In-Reply-To: <13426df10705111244w1578ebedy8259bc42ca1f588d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
ron minnich wrote:
> Avoiding too much detail, in the plan 9 world, read and write of data
> to a disk is via file read and write system calls.
For low speed devices, I think paravirtualization doesn't make a lot of
sense unless it's absolutely required. I don't know enough about s390
to know if it supports things like uarts but if so, then emulating a
uart would in my mind make a lot more sense than a PV console device.
> Same for a network.
> Same for the mouse, the window system, the serial port, the console,
> USB, and so on. Please see this note from IBM on what is
> possible:http://domino.watson.ibm.com/library/CyberDig.nsf/0/c6c779bbf1650fa4852570670054f3ca?OpenDocument
> or http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf
> Different resources, same interface. In the hypervisor world, you
> build one shared memory queue as a basic abstraction. On top of that
> queue, you run 9P. The provider (network, block device, etc.) provides
> certain resources to you, the guest domain The resources have names. A
> network can look like this, to a kvm guest (this command from a Plan 9
> system):
> cpu% ls /net/ether0
> /net/ether0/0
> /net/ether0/1
> /net/ether0/2
> /net/ether0/addr
> /net/ether0/clone
> /net/ether0/ifstats
> /net/ether0/stats
>
This smells a bit like XenStore which I think most will agree was an
unmitigated disaster. This sort of thing gets terribly complicated to
deal with in the corner cases. Atomic operation of multiple read/write
operations is difficult to express. Moreover, quite a lot of things are
naturally expressed as a state machine which is not straight forward to
do in this sort of model. This may have been all figured out in 9P but
it's certainly not a simple thing to get right.
I think a general rule of thumb for a virtualized environment is that
the closer you stick to the way hardware tends to do things, the less
likely you are to screw yourself up and the easier it will be for other
platforms to support your devices. Implementing a full 9P client just
to get console access in something like mini-os would be unfortunate.
At least the posted s390 console driver behaves roughly like a uart so
it's pretty obvious that it will be easy to implement in any OS that
supports uarts already.
Regards,
Anthony Liguori
> To get network stats, or do I/O, one simply gains access to the
> appropriate ring buffer, by finding the name, and does the ring buffer
> sends and receives via shared memory queues. The I/O operations can be
> very efficient.
>
> Disk looks like this:
> cpu% ls -l /dev/sdC0
> --rw-r----- S 0 bootes bootes 104857600 Jan 22 15:49 /dev/sdC0/9fat
> --rw-r----- S 0 bootes bootes 65361213440 Jan 22 15:49 /dev/sdC0/arenas
> --rw-r----- S 0 bootes bootes 0 Jan 22 15:49 /dev/sdC0/ctl
> --rw-r----- S 0 bootes bootes 82348277760 Jan 22 15:49 /dev/sdC0/data
> --rw-r----- S 0 bootes bootes 13072242688 Jan 22 15:49 /dev/sdC0/fossil
> --rw-r----- S 0 bootes bootes 3268060672 Jan 22 15:49 /dev/sdC0/isect
> --rw-r----- S 0 bootes bootes 512 Jan 22 15:49 /dev/sdC0/nvram
> --rw-r----- S 0 bootes bootes 82343245824 Jan 22 15:49 /dev/sdC0/plan9
> -lrw------- S 0 bootes bootes 0 Jan 22 15:49 /dev/sdC0/raw
> --rw-r----- S 0 bootes bootes 536870912 Jan 22 15:49 /dev/sdC0/swap
> cpu%
>
> So the disk partitions are "files", with the "data" file being the
> whole disk. Again, on a hypervisor system, to do I/O, software could
> create a connection to the "file" and establish the in-memory ring
> buffer, for that partition. This I/O can be very efficient; IBM
> research is working on zero-copy mechanisms for moving data between
> domains.
>
> The result is a single, consistent mechanism for accessing all
> resources from a guest domain. The resources have names, and it is
> easy to examine the status -- binary interfaces can be minimized. The
> resources can be provided by in-kernel servers -- Linux drivers -- or
> out-of-kernel servers -- proceses. Same interface, and yet the
> implementation of the provider of the resource can be utterly
> different.
>
> We had hoped to get something like this into Xen. On Xen, for example,
> the block device and ethernet device interfaces are as different as
> one could imagine. Disk I/O does not steal pages from the guest. The
> network does. Disk I/O is in 4k chunks, period, with a bitmap
> describing which of the 8 512-byte subunits are being sent. The enet
> device, on read, returns a page with your packet, but also potentially
> containing bits of other domain's packets too. The interfaces are as
> dissimilar as they can be, and I see no reason for such a huge
> variance between what are basically read/write devices.
>
> Another issue is that kvm, in its current form (-24) is beautifully
> simple. These additions seem to detract from the beauty a bit. Might
> it be worth taking a little time to consider these ideas in order to
> preserve the basic elegance of KVM?
>
> So, before we go too far down the Xen-like paravirtualized device
> route, can we discuss the way this ought to look a bit?
>
> thanks
>
> ron
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> kvm-devel mailing list
> kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/kvm-devel
>
>
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
next prev parent reply other threads:[~2007-05-11 20:12 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1178903957.25135.13.camel@cotte.boeblingen.de.ibm.com>
[not found] ` <1178903957.25135.13.camel-WIxn4w2hgUz3YA32ykw5MLlKpX0K8NHHQQ4Iyu8u01E@public.gmane.org>
2007-05-11 17:35 ` [PATCH/RFC 2/9] s390 virtualization interface Carsten Otte
2007-05-11 17:35 ` [PATCH/RFC 3/9] s390 guest detection Carsten Otte
2007-05-11 17:35 ` [PATCH/RFC 4/9] Basic guest virtual devices infrastructure Carsten Otte
[not found] ` <1178904958.25135.31.camel-WIxn4w2hgUz3YA32ykw5MLlKpX0K8NHHQQ4Iyu8u01E@public.gmane.org>
2007-05-11 20:06 ` Arnd Bergmann
2007-05-14 11:26 ` Avi Kivity
[not found] ` <46484753.30602-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-14 11:43 ` Carsten Otte
[not found] ` <46484B5D.6080605-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-05-14 12:00 ` [PATCH/RFC 4/9] Basic guest virtualdevices infrastructure Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160BC7483D-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-05-14 13:32 ` Carsten Otte
2007-05-11 17:36 ` [PATCH/RFC 5/9] s390 virtual console for guests Carsten Otte
[not found] ` <1178904960.25135.32.camel-WIxn4w2hgUz3YA32ykw5MLlKpX0K8NHHQQ4Iyu8u01E@public.gmane.org>
2007-05-11 19:00 ` Anthony Liguori
[not found] ` <4644BD3C.8040901-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-05-11 19:42 ` Christian Bornträger
2007-05-12 8:07 ` Carsten Otte
2007-05-14 16:23 ` Christian Bornträger
[not found] ` <200705141823.13424.cborntra-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-05-14 16:48 ` Christian Borntraeger
[not found] ` <200705141848.18996.borntrae-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-05-14 17:49 ` Anthony Liguori
[not found] ` <4648A11D.3050607-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-05-15 0:27 ` Arnd Bergmann
2007-05-15 7:54 ` Carsten Otte
2007-05-11 17:36 ` [PATCH/RFC 6/9] virtual block device driver Carsten Otte
[not found] ` <1178904963.25135.33.camel-WIxn4w2hgUz3YA32ykw5MLlKpX0K8NHHQQ4Iyu8u01E@public.gmane.org>
2007-05-14 11:49 ` Avi Kivity
[not found] ` <46484CDF.505-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-14 13:23 ` Carsten Otte
[not found] ` <464862E9.7020105-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-05-14 14:39 ` Avi Kivity
[not found] ` <46487494.1070802-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-15 11:47 ` Carsten Otte
[not found] ` <46499DE9.9090202-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-05-16 10:01 ` Avi Kivity
2007-05-14 11:52 ` Avi Kivity
[not found] ` <46484D84.3060601-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-14 13:26 ` Carsten Otte
2007-05-11 17:36 ` [PATCH/RFC 7/9] Virtual network guest " Carsten Otte
[not found] ` <1178904965.25135.34.camel-WIxn4w2hgUz3YA32ykw5MLlKpX0K8NHHQQ4Iyu8u01E@public.gmane.org>
2007-05-11 19:44 ` ron minnich
[not found] ` <13426df10705111244w1578ebedy8259bc42ca1f588d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-11 20:12 ` Anthony Liguori [this message]
[not found] ` <4644CE15.6080505-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-05-11 21:15 ` Eric Van Hensbergen
[not found] ` <a4e6962a0705111415n47e77a15o331b59cf2a03b4-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-11 21:47 ` Anthony Liguori
[not found] ` <4644E456.2060507-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-05-11 22:21 ` Eric Van Hensbergen
[not found] ` <a4e6962a0705111521v2d451ddcjecf209e2031c85af-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-16 17:28 ` Anthony Liguori
[not found] ` <464B3F20.4030904-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-05-16 17:38 ` Daniel P. Berrange
[not found] ` <20070516173822.GD16863-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2007-05-17 9:29 ` Carsten Otte
[not found] ` <464C2069.20909-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-05-17 14:22 ` Anthony Liguori
[not found] ` <464C651F.5070700-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-05-21 11:11 ` Christian Borntraeger
2007-05-16 17:41 ` Eric Van Hensbergen
[not found] ` <a4e6962a0705161041s5393c1a6wc455b20ff3fe8106-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-16 18:47 ` Anthony Liguori
[not found] ` <464B51A8.7050307-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-05-16 19:33 ` Eric Van Hensbergen
2007-05-16 17:45 ` Gregory Haskins
[not found] ` <464B0ADB.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-16 18:39 ` Anthony Liguori
[not found] ` <464B4FEB.7070300-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-05-16 18:57 ` Gregory Haskins
[not found] ` <464B1B9C.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-16 19:10 ` Anthony Liguori
[not found] ` <464B572C.6090800-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-05-17 4:24 ` Rusty Russell
[not found] ` <1179375881.21871.83.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-05-17 16:13 ` Anthony Liguori
[not found] ` <464C7F45.50908-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-05-17 23:34 ` Rusty Russell
2007-05-21 9:07 ` Christian Borntraeger
[not found] ` <OFC1AADF6F.DB57C7AC-ON422572E2.0030BE22-422572E2.0032174C-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-05-21 9:27 ` Cornelia Huck
2007-05-21 11:28 ` Arnd Bergmann
[not found] ` <200705211328.04565.arnd-r2nGTMty4D4@public.gmane.org>
2007-05-21 11:56 ` Cornelia Huck
[not found] ` <20070521135628.17a4f9cc-XQvu0L+U/CiXI4yAdoq52KN5r0PSdgG1zG2AekJRRhI@public.gmane.org>
2007-05-21 13:53 ` Arnd Bergmann
2007-05-21 18:45 ` Anthony Liguori
[not found] ` <4651E8D1.4010208-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-05-21 23:09 ` ron minnich
[not found] ` <13426df10705211609j613032c6j373d9a4660f8ec6c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-22 0:29 ` Anthony Liguori
[not found] ` <46523952.7070405-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-05-22 0:45 ` ron minnich
[not found] ` <13426df10705211745r69acc95ai458b2192fe0d0132-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-22 1:13 ` Anthony Liguori
2007-05-22 1:34 ` Eric Van Hensbergen
[not found] ` <a4e6962a0705211834s4db19c7t3b95765bf2c092d7-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-22 1:42 ` Anthony Liguori
[not found] ` <46524A79.8070004-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-05-22 5:17 ` Avi Kivity
[not found] ` <46527CD9.5000603-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-22 12:49 ` Eric Van Hensbergen
[not found] ` <a4e6962a0705220549j1c9565f2ic160c672b74aea35-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-22 12:56 ` Christoph Hellwig
[not found] ` <20070522125655.GA4506-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2007-05-22 14:50 ` Eric Van Hensbergen
[not found] ` <a4e6962a0705220750s5abe380dg8dd8e7d0b84de7cd-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-22 15:05 ` Anthony Liguori
[not found] ` <465306AE.5080902-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-05-22 15:31 ` ron minnich
2007-05-22 16:25 ` Eric Van Hensbergen
[not found] ` <a4e6962a0705220925l580f136we269380fe3c9691c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-22 17:00 ` ron minnich
[not found] ` <13426df10705221000i749badc5h8afe4f2fc95bc2ce-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-22 17:06 ` Christoph Hellwig
[not found] ` <20070522170628.GA16624-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2007-05-22 17:34 ` ron minnich
[not found] ` <13426df10705221034k7baf5bccrc77aabca8c9e225c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-22 20:03 ` Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160BF29F1E-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-05-22 20:10 ` ron minnich
2007-05-22 22:56 ` Nakajima, Jun
[not found] ` <8FFF7E42E93CC646B632AB40643802A8032793AC-1a9uaKK1+wJcIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-05-23 8:15 ` Carsten Otte
[not found] ` <4653F807.2010209-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-05-23 12:25 ` Avi Kivity
2007-05-23 14:12 ` Eric Van Hensbergen
[not found] ` <a4e6962a0705230712pd8c2958m9dee6b2ccec0899d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-23 23:02 ` Arnd Bergmann
[not found] ` <200705240102.40795.arnd-r2nGTMty4D4@public.gmane.org>
2007-05-23 23:57 ` Eric Van Hensbergen
[not found] ` <a4e6962a0705231657n65946ba4n74393f7028b6d61c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-24 0:07 ` Eric Van Hensbergen
2007-05-23 12:21 ` Avi Kivity
2007-05-23 12:16 ` Avi Kivity
[not found] ` <465430B2.7050101-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-23 12:20 ` Christoph Hellwig
2007-05-23 12:20 ` Avi Kivity
2007-05-23 11:55 ` Avi Kivity
2007-05-22 13:08 ` Anthony Liguori
2007-05-18 5:31 ` ron minnich
[not found] ` <13426df10705172231y5e93d1f5y398d4f187a8978e1-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-05-18 14:31 ` Anthony Liguori
[not found] ` <464DB8A5.6080503-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-05-18 15:14 ` ron minnich
2007-05-11 21:51 ` ron minnich
2007-05-12 8:46 ` Carsten Otte
[not found] ` <46457EF9.2070706-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-05-13 12:04 ` Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160BC74612-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-05-13 14:49 ` Anthony Liguori
[not found] ` <4647257F.4020900-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-05-13 16:23 ` Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160BC74675-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-05-13 16:49 ` Anthony Liguori
[not found] ` <4647418A.2040201-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-05-13 17:06 ` Muli Ben-Yehuda
[not found] ` <20070513170608.GA4343-WD1JZD8MxeCTrf4lBMg6DdBPR1lH4CV8@public.gmane.org>
2007-05-13 20:31 ` Dor Laor
2007-05-14 2:39 ` Rusty Russell
2007-05-14 11:53 ` Avi Kivity
2007-05-14 12:05 ` Avi Kivity
[not found] ` <46485070.3000106-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-14 12:24 ` Christian Bornträger
[not found] ` <200705141424.44423.cborntra-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-05-14 12:32 ` Avi Kivity
2007-05-14 13:36 ` Carsten Otte
2007-05-11 17:36 ` [PATCH/RFC 8/9] Virtual network host switch support Carsten Otte
[not found] ` <1178904968.25135.35.camel-WIxn4w2hgUz3YA32ykw5MLlKpX0K8NHHQQ4Iyu8u01E@public.gmane.org>
2007-05-11 20:21 ` Anthony Liguori
[not found] ` <4644D048.7060106-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-05-11 20:50 ` Christian Bornträger
2007-05-11 17:36 ` [PATCH/RFC 9/9] Fix system<->user misaccount of interpreted execution Carsten Otte
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=4644CE15.6080505@us.ibm.com \
--to=aliguori-r/jw6+rmf7hqt0dzr+alfa@public.gmane.org \
--cc=cborntra-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org \
--cc=jimix-aZOuKsOsJu3MbYB6QlFGEg@public.gmane.org \
--cc=jmk-zzFmDc4TPjtKvsKVC3L/VUEOCMrvLtNR@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=rminnich-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=schwidefsky-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org \
/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