virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] qemu-kvm: vhost net support
@ 2009-08-10 19:23 Michael S. Tsirkin
  0 siblings, 0 replies; 13+ messages in thread
From: Michael S. Tsirkin @ 2009-08-10 19:23 UTC (permalink / raw)
  To: avi, kvm, virtualization

This adds support for vhost-net virtio kernel backend.

This is RFC, but works without issues for me.

Still needs to be split up, tested and benchmarked properly,
but posting it here in case people want to test drive
the kernel bits I posted.

Michael S. Tsirkin (3):
  qemu-kvm: move virtio-pci.o to near pci.o
  virtio: move features to an inline function
  qemu-kvm: vhost-net implementation

 Makefile.hw         |    2 +-
 Makefile.target     |    3 +-
 hw/vhost_net.c      |  181 +++++++++++++++++++++++++++++++++++++++++++++++++++
 hw/vhost_net.h      |   30 +++++++++
 hw/virtio-balloon.c |    2 +-
 hw/virtio-blk.c     |    2 +-
 hw/virtio-console.c |    2 +-
 hw/virtio-net.c     |   34 +++++++++-
 hw/virtio-pci.c     |   43 +++++++++++-
 hw/virtio.c         |   19 ------
 hw/virtio.h         |   38 ++++++++++-
 net.c               |    8 ++-
 net.h               |    1 +
 qemu-kvm.c          |    8 --
 qemu-kvm.h          |    9 +++
 15 files changed, 340 insertions(+), 42 deletions(-)
 create mode 100644 hw/vhost_net.c
 create mode 100644 hw/vhost_net.h

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
       [not found] <20090810192304.GA16781@redhat.com>
@ 2009-08-10 20:51 ` Anthony Liguori
  2009-08-12 17:35   ` Michael S. Tsirkin
       [not found]   ` <20090812173548.GA29981@redhat.com>
  2009-08-12 20:27 ` Gregory Haskins
       [not found] ` <4A8325C0.7060001@gmail.com>
  2 siblings, 2 replies; 13+ messages in thread
From: Anthony Liguori @ 2009-08-10 20:51 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: avi, kvm, virtualization

Michael S. Tsirkin wrote:
> This adds support for vhost-net virtio kernel backend.
>
> This is RFC, but works without issues for me.
>
> Still needs to be split up, tested and benchmarked properly,
> but posting it here in case people want to test drive
> the kernel bits I posted.
>   

Any rough idea on performance?  Better or worse than userspace?

Regards,

Anthony Liguori

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
  2009-08-10 20:51 ` [PATCH 0/3] qemu-kvm: vhost net support Anthony Liguori
@ 2009-08-12 17:35   ` Michael S. Tsirkin
       [not found]   ` <20090812173548.GA29981@redhat.com>
  1 sibling, 0 replies; 13+ messages in thread
From: Michael S. Tsirkin @ 2009-08-12 17:35 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: avi, kvm, virtualization

On Mon, Aug 10, 2009 at 03:51:12PM -0500, Anthony Liguori wrote:
> Michael S. Tsirkin wrote:
>> This adds support for vhost-net virtio kernel backend.
>>
>> This is RFC, but works without issues for me.
>>
>> Still needs to be split up, tested and benchmarked properly,
>> but posting it here in case people want to test drive
>> the kernel bits I posted.
>>   
>
> Any rough idea on performance?  Better or worse than userspace?
>
> Regards,
>
> Anthony Liguori

Well, I definitely see some gain in latency.
Here's a simple test over a 1G ethernet link (host to guest):

Native:
[root@qus18 ~]# netperf -H 11.0.0.1 -t udp_rr
UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 11.0.0.1 (11.0.0.1) port 0 AF_INET
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size     Size    Time     Rate
bytes  Bytes  bytes    bytes   secs.    per sec

126976 126976 1        1       10.00    10393.23
124928 124928


vhost virtio:
[root@qus18 ~]# netperf -H 11.0.0.3 -t udp_rr
UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 11.0.0.3 (11.0.0.3) port 0 AF_INET
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size     Size    Time     Rate
bytes  Bytes  bytes    bytes   secs.    per sec

126976 126976 1        1       10.00    8169.58
124928 124928

Userspace virtio:
[root@qus18 ~]# netperf -H 11.0.0.3 -t udp_rr
UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 11.0.0.3 (11.0.0.3) port 0 AF_INET
Local /Remote
Socket Size   Request  Resp.   Elapsed  Trans.
Send   Recv   Size     Size    Time     Rate
bytes  Bytes  bytes    bytes   secs.    per sec

126976 126976 1        1       10.00    2029.49
124928 124928


Part of it might be that tx mitigation does not come into play with vhost. I
need to disable it in qemu and see.

-- 
MST

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
       [not found] <20090810192304.GA16781@redhat.com>
  2009-08-10 20:51 ` [PATCH 0/3] qemu-kvm: vhost net support Anthony Liguori
@ 2009-08-12 20:27 ` Gregory Haskins
       [not found] ` <4A8325C0.7060001@gmail.com>
  2 siblings, 0 replies; 13+ messages in thread
From: Gregory Haskins @ 2009-08-12 20:27 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: avi, kvm, virtualization


[-- Attachment #1.1: Type: text/plain, Size: 402 bytes --]

Michael S. Tsirkin wrote:
> This adds support for vhost-net virtio kernel backend.
> 
> This is RFC, but works without issues for me.
> 
> Still needs to be split up, tested and benchmarked properly,
> but posting it here in case people want to test drive
> the kernel bits I posted.

This has a large degree of rejects against qemu-kvm.git/master.  What
tree does this apply to?

-Greg


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

[-- Attachment #2: Type: text/plain, Size: 184 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
       [not found] ` <4A8325C0.7060001@gmail.com>
@ 2009-08-13  5:59   ` Michael S. Tsirkin
       [not found]   ` <20090813055941.GB3029@redhat.com>
  1 sibling, 0 replies; 13+ messages in thread
From: Michael S. Tsirkin @ 2009-08-13  5:59 UTC (permalink / raw)
  To: Gregory Haskins; +Cc: avi, kvm, virtualization

On Wed, Aug 12, 2009 at 04:27:44PM -0400, Gregory Haskins wrote:
> Michael S. Tsirkin wrote:
> > This adds support for vhost-net virtio kernel backend.
> > 
> > This is RFC, but works without issues for me.
> > 
> > Still needs to be split up, tested and benchmarked properly,
> > but posting it here in case people want to test drive
> > the kernel bits I posted.
> 
> This has a large degree of rejects against qemu-kvm.git/master.  What
> tree does this apply to?
> 
> -Greg
> 

Likely that tree has advanced since.
This is on top of commit b6bbd41fac4b6fb0efc65e083d2151ce1521f615.

-- 
MST

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
       [not found]   ` <20090813055941.GB3029@redhat.com>
@ 2009-08-13 11:35     ` Gregory Haskins
       [not found]     ` <4A83FA98.1010708@gmail.com>
  1 sibling, 0 replies; 13+ messages in thread
From: Gregory Haskins @ 2009-08-13 11:35 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: avi, kvm, virtualization


[-- Attachment #1.1: Type: text/plain, Size: 1250 bytes --]

Michael S. Tsirkin wrote:
> On Wed, Aug 12, 2009 at 04:27:44PM -0400, Gregory Haskins wrote:
>> Michael S. Tsirkin wrote:
>>> This adds support for vhost-net virtio kernel backend.
>>>
>>> This is RFC, but works without issues for me.
>>>
>>> Still needs to be split up, tested and benchmarked properly,
>>> but posting it here in case people want to test drive
>>> the kernel bits I posted.
>> This has a large degree of rejects against qemu-kvm.git/master.  What
>> tree does this apply to?
>>
>> -Greg
>>
> 
> Likely that tree has advanced since.
> This is on top of commit b6bbd41fac4b6fb0efc65e083d2151ce1521f615.
> 


Hmm....better, but I still get rejects.  Of particular concern is this
one in net.c:

@@ -1903,7 +1903,7 @@ static TAPState *net_tap_init(VLANState *vlan,
const char *model,
 typedef struct RAWState {
     VLANClientState *vc;
     int fd;
-    uint8_t buf[4096];
+    uint8_t buf[65000];
     int promisc;
 } RAWState;


I do not see any occurrence of "RAWState" in b6bbd41f (or master, for
that matter).  There is probably an operator error somewhere in here ;),
but any help getting this working is appreciated.  Do you have a git
tree I can pull somewhere?

Kind Regards,
-Greg


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

[-- Attachment #2: Type: text/plain, Size: 184 bytes --]

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
       [not found]     ` <4A83FA98.1010708@gmail.com>
@ 2009-08-13 11:53       ` Michael S. Tsirkin
  0 siblings, 0 replies; 13+ messages in thread
From: Michael S. Tsirkin @ 2009-08-13 11:53 UTC (permalink / raw)
  To: Gregory Haskins; +Cc: avi, kvm, virtualization

On Thu, Aug 13, 2009 at 07:35:52AM -0400, Gregory Haskins wrote:
> Michael S. Tsirkin wrote:
> > On Wed, Aug 12, 2009 at 04:27:44PM -0400, Gregory Haskins wrote:
> >> Michael S. Tsirkin wrote:
> >>> This adds support for vhost-net virtio kernel backend.
> >>>
> >>> This is RFC, but works without issues for me.
> >>>
> >>> Still needs to be split up, tested and benchmarked properly,
> >>> but posting it here in case people want to test drive
> >>> the kernel bits I posted.
> >> This has a large degree of rejects against qemu-kvm.git/master.  What
> >> tree does this apply to?
> >>
> >> -Greg
> >>
> > 
> > Likely that tree has advanced since.
> > This is on top of commit b6bbd41fac4b6fb0efc65e083d2151ce1521f615.
> > 
> 
> 
> Hmm....better, but I still get rejects.  Of particular concern is this
> one in net.c:
> 
> @@ -1903,7 +1903,7 @@ static TAPState *net_tap_init(VLANState *vlan,
> const char *model,
>  typedef struct RAWState {
>      VLANClientState *vc;
>      int fd;
> -    uint8_t buf[4096];
> +    uint8_t buf[65000];
>      int promisc;
>  } RAWState;
> 
> 
> I do not see any occurrence of "RAWState" in b6bbd41f (or master, for
> that matter).  There is probably an operator error somewhere in here ;),

Yes. Mine :)

> but any help getting this working is appreciated.

I reposted a clean one which is against latest bits earlier today.
Look for PATCHv2 in your inbox.

> Do you have a git tree I can pull somewhere?
> Kind Regards,
> -Greg
> 

Thanks for the patience,

-- 
MST

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
       [not found]   ` <20090812173548.GA29981@redhat.com>
@ 2009-08-19  8:11     ` Or Gerlitz
  2009-08-20  7:19     ` Rusty Russell
       [not found]     ` <200908201649.48082.rusty@rustcorp.com.au>
  2 siblings, 0 replies; 13+ messages in thread
From: Or Gerlitz @ 2009-08-19  8:11 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: virtualization, avi, Anthony Liguori, kvm

Michael S. Tsirkin wrote:
> Well, I definitely see some gain in latency.
> Here's a simple test over a 1G ethernet link (host to guest):

> Native:
> 126976 126976 1        1       10.00    10393.23

> vhost virtio:
> 126976 126976 1        1       10.00    8169.58

> Userspace virtio:
> 126976 126976 1        1       10.00    2029.49

Hi Michael,

Can you provide udp stream numbers for small packets, so we can see the 
packets-per-second gain? e.g -- -m 22 which should account for 64 byte frames.

Or.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
       [not found]   ` <20090812173548.GA29981@redhat.com>
  2009-08-19  8:11     ` Or Gerlitz
@ 2009-08-20  7:19     ` Rusty Russell
       [not found]     ` <200908201649.48082.rusty@rustcorp.com.au>
  2 siblings, 0 replies; 13+ messages in thread
From: Rusty Russell @ 2009-08-20  7:19 UTC (permalink / raw)
  To: virtualization; +Cc: kvm, avi, Anthony Liguori, Michael S. Tsirkin

On Thu, 13 Aug 2009 03:05:48 am Michael S. Tsirkin wrote:
> On Mon, Aug 10, 2009 at 03:51:12PM -0500, Anthony Liguori wrote:
> > Any rough idea on performance?  Better or worse than userspace?
> 
> Well, I definitely see some gain in latency.
...
> Part of it might be that tx mitigation does not come into play with vhost. I
> need to disable it in qemu and see.

A simple test I've found reasonably indicative when looking at base performance (before stuff like TSO get involved) is to do pings.  Throughput with "ping -s 1024 -l 120 -c 1000000 -f -q" and latency with "ping -c 1000000 -f -q".

(You may need to cut -l down if your ring is too small).

Cheers,
Rusty.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
       [not found]     ` <200908201649.48082.rusty@rustcorp.com.au>
@ 2009-08-20 13:41       ` Michael S. Tsirkin
  2009-08-20 17:00       ` Michael S. Tsirkin
       [not found]       ` <20090820170028.GA8908@redhat.com>
  2 siblings, 0 replies; 13+ messages in thread
From: Michael S. Tsirkin @ 2009-08-20 13:41 UTC (permalink / raw)
  To: Rusty Russell; +Cc: kvm, avi, Anthony Liguori, virtualization

On Thu, Aug 20, 2009 at 04:49:47PM +0930, Rusty Russell wrote:
> On Thu, 13 Aug 2009 03:05:48 am Michael S. Tsirkin wrote:
> > On Mon, Aug 10, 2009 at 03:51:12PM -0500, Anthony Liguori wrote:
> > > Any rough idea on performance?  Better or worse than userspace?
> > 
> > Well, I definitely see some gain in latency.
> ...
> > Part of it might be that tx mitigation does not come into play with vhost. I
> > need to disable it in qemu and see.
> 
> A simple test I've found reasonably indicative when looking at base performance (before stuff like TSO get involved) is to do pings.  Throughput with "ping -s 1024 -l 120 -c 1000000 -f -q" and latency with "ping -c 1000000 -f -q".
> 
> (You may need to cut -l down if your ring is too small).
> 
> Cheers,
> Rusty.

OK, will try that.

-- 
MST

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
       [not found]     ` <200908201649.48082.rusty@rustcorp.com.au>
  2009-08-20 13:41       ` Michael S. Tsirkin
@ 2009-08-20 17:00       ` Michael S. Tsirkin
       [not found]       ` <20090820170028.GA8908@redhat.com>
  2 siblings, 0 replies; 13+ messages in thread
From: Michael S. Tsirkin @ 2009-08-20 17:00 UTC (permalink / raw)
  To: Rusty Russell; +Cc: kvm, avi, Anthony Liguori, virtualization

On Thu, Aug 20, 2009 at 04:49:47PM +0930, Rusty Russell wrote:
> On Thu, 13 Aug 2009 03:05:48 am Michael S. Tsirkin wrote:
> > On Mon, Aug 10, 2009 at 03:51:12PM -0500, Anthony Liguori wrote:
> > > Any rough idea on performance?  Better or worse than userspace?
> > 
> > Well, I definitely see some gain in latency.
> ...
> > Part of it might be that tx mitigation does not come into play with vhost. I
> > need to disable it in qemu and see.
> 
> A simple test I've found reasonably indicative when looking at base performance (before stuff like TSO get involved) is to do pings.  Throughput with "ping -s 1024 -l 120 -c 1000000 -f -q" and latency with "ping -c 1000000 -f -q".
> 
> (You may need to cut -l down if your ring is too small).
> 
> Cheers,
> Rusty.

Surprisingly, I seem to get better-than-userspace throughput with this
benchmark as well.  Here's a test run locally, host-to-guest,
over a veth link:

vhost:
[root@qus19 ~]# ping -c 1000000 -f -q 11.0.0.4
PING 11.0.0.4 (11.0.0.4) 56(84) bytes of data.

--- 11.0.0.4 ping statistics ---
1000000 packets transmitted, 1000000 received, 0% packet loss, time 10230ms
rtt min/avg/max/mdev = 0.005/0.006/0.035/0.000 ms, ipg/ewma 0.010/0.006 ms
[root@qus19 ~]# ping -s 1024 -l 120 -c 1000000 -f -q 11.0.0.4
PING 11.0.0.4 (11.0.0.4) 1024(1052) bytes of data.

--- 11.0.0.4 ping statistics ---
1000000 packets transmitted, 1000000 received, 0% packet loss, time 11270ms
rtt min/avg/max/mdev = 0.006/0.006/0.022/0.002 ms, pipe 120, ipg/ewma 0.011/0.007 ms

qemu:

[root@qus19 ~]# ping -c 1000000 -f -q 12.0.0.2
PING 12.0.0.2 (12.0.0.2) 56(84) bytes of data.

--- 12.0.0.2 ping statistics ---
1000000 packets transmitted, 1000000 received, 0% packet loss, time 59974ms
rtt min/avg/max/mdev = 0.025/0.044/8.076/0.012 ms, pipe 2, ipg/ewma 0.059/0.045 ms

[root@qus19 ~]# ping -s 1024 -l 120 -c 1000000 -f -q 12.0.0.2
PING 12.0.0.2 (12.0.0.2) 1024(1052) bytes of data.

--- 12.0.0.2 ping statistics ---
1000000 packets transmitted, 833496 received, 16% packet loss, time 38841ms
rtt min/avg/max/mdev = 0.133/4.482/9.728/0.771 ms, pipe 120, ipg/ewma 0.038/4.144 ms

Will try over an external link next week when I get access to
a back-to-back setup (don't want to bother with external
switches at this point).

-- 
MST

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
       [not found]       ` <20090820170028.GA8908@redhat.com>
@ 2009-08-20 17:24         ` Avi Kivity
       [not found]         ` <4A8D86D5.4090809@redhat.com>
  1 sibling, 0 replies; 13+ messages in thread
From: Avi Kivity @ 2009-08-20 17:24 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: kvm, Anthony Liguori, virtualization

On 08/20/2009 08:00 PM, Michael S. Tsirkin wrote:
>
> Surprisingly, I seem to get better-than-userspace throughput with this
> benchmark as well.  Here's a test run locally, host-to-guest,
> over a veth link:
>
> vhost:
> [root@qus19 ~]# ping -c 1000000 -f -q 11.0.0.4
> PING 11.0.0.4 (11.0.0.4) 56(84) bytes of data.
>
> --- 11.0.0.4 ping statistics ---
> 1000000 packets transmitted, 1000000 received, 0% packet loss, time 10230ms
> rtt min/avg/max/mdev = 0.005/0.006/0.035/0.000 ms, ipg/ewma 0.010/0.006 ms
>    

6 microseconds is very impressive for round-trip time.

> [root@qus19 ~]# ping -s 1024 -l 120 -c 1000000 -f -q 11.0.0.4
> PING 11.0.0.4 (11.0.0.4) 1024(1052) bytes of data.
>
> --- 11.0.0.4 ping statistics ---
> 1000000 packets transmitted, 1000000 received, 0% packet loss, time 11270ms
> rtt min/avg/max/mdev = 0.006/0.006/0.022/0.002 ms, pipe 120, ipg/ewma 0.011/0.007 ms
>
>    

That's only 100MB/sec, but understandable given the lack of interrupt 
mitigation.

-- 
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/3] qemu-kvm: vhost net support
       [not found]         ` <4A8D86D5.4090809@redhat.com>
@ 2009-08-20 17:49           ` Michael S. Tsirkin
  0 siblings, 0 replies; 13+ messages in thread
From: Michael S. Tsirkin @ 2009-08-20 17:49 UTC (permalink / raw)
  To: Avi Kivity; +Cc: kvm, Anthony Liguori, virtualization

On Thu, Aug 20, 2009 at 08:24:37PM +0300, Avi Kivity wrote:
> On 08/20/2009 08:00 PM, Michael S. Tsirkin wrote:
>>
>> Surprisingly, I seem to get better-than-userspace throughput with this
>> benchmark as well.  Here's a test run locally, host-to-guest,
>> over a veth link:

Bleh, I knew it's too good to be true. botched the setup.
Pls disregard this, will post real numbers soon.
Sorry about the noise,

-- 
MST

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2009-08-20 17:49 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20090810192304.GA16781@redhat.com>
2009-08-10 20:51 ` [PATCH 0/3] qemu-kvm: vhost net support Anthony Liguori
2009-08-12 17:35   ` Michael S. Tsirkin
     [not found]   ` <20090812173548.GA29981@redhat.com>
2009-08-19  8:11     ` Or Gerlitz
2009-08-20  7:19     ` Rusty Russell
     [not found]     ` <200908201649.48082.rusty@rustcorp.com.au>
2009-08-20 13:41       ` Michael S. Tsirkin
2009-08-20 17:00       ` Michael S. Tsirkin
     [not found]       ` <20090820170028.GA8908@redhat.com>
2009-08-20 17:24         ` Avi Kivity
     [not found]         ` <4A8D86D5.4090809@redhat.com>
2009-08-20 17:49           ` Michael S. Tsirkin
2009-08-12 20:27 ` Gregory Haskins
     [not found] ` <4A8325C0.7060001@gmail.com>
2009-08-13  5:59   ` Michael S. Tsirkin
     [not found]   ` <20090813055941.GB3029@redhat.com>
2009-08-13 11:35     ` Gregory Haskins
     [not found]     ` <4A83FA98.1010708@gmail.com>
2009-08-13 11:53       ` Michael S. Tsirkin
2009-08-10 19:23 Michael S. Tsirkin

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).