From: Johannes Stezenbach <js@sig21.net>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andy Lutomirski <luto@amacapital.net>,
Lukasz Skalski <l.skalski@samsung.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
Arnd Bergmann <arnd@arndb.de>,
"Eric W. Biederman" <ebiederm@xmission.com>,
One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>,
Tom Gundersen <teg@jklm.no>, Jiri Kosina <jkosina@suse.cz>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Daniel Mack <daniel@zonque.org>,
David Herrmann <dh.herrmann@gmail.com>,
Djalal Harouni <tixxdz@opendz.org>
Subject: Re: [GIT PULL] kdbus for 4.1-rc1
Date: Tue, 7 Jul 2015 23:40:17 +0200 [thread overview]
Message-ID: <20150707214017.GA12313@sig21.net> (raw)
In-Reply-To: <CA+55aFxdguuO7CLKYYq_qM6S6FT2CicZ1E5D5xGE54OdJNQwew@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2135 bytes --]
On Mon, Apr 27, 2015 at 03:14:49PM -0700, Linus Torvalds wrote:
> On Mon, Apr 27, 2015 at 3:00 PM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> >
> > IOW, all the people who say that it's about avoiding context switches
> > are probably just full of shit. It's not about context switches, it's
> > about bad user-level code.
>
> Just to make sure, I did a system-wide profile (so that you can
> actually see the overhead of context switching better), and that
> didn't change the picture.
>
> The scheduler overhead *might* be 1% or so.
>
> So really. The people who talk about how kdbus improves performance
> are just full of sh*t. Yes, it improves things, but the improvement
> seems to be 100% "incidental", in that it avoids a few trips down the
> user-space problems.
I was interested how plain UDS performs compared to the
dbus-client/dbus-server benchmark when doing a similar
transaction (RPC call from client1 to client2 via a server,
i.e 4 send() and 4 recv() syscalls per RPC msg).
Since I had worked on socket code for some project anyway, I
decided to write a stupid little benchmark.
On my machine, dbus-client/dbus-server needs ~200us per call (1024 byte msg),
UDS "dbus call" needs ~23us. Of course, someone who cares about performance
wouldn't use sync RPC via a message broker, so I added
single-client and async mode to the benchmark for comparison.
Async mode not only decreases scheduling overhead, it also
can use two CPU cores, so it's more than twice as fast.
./server dbus
(you need to run two clients, the timing loop starts
when the second client connects)
./client sync 4096 1000000
22.757250 s, 43942 msg/s, 22.8 us/msg, 171.638 MB/s
./client async 4096 1000000
8.197482 s, 121989 msg/s, 8.2 us/msg, 476.488 MB/s
./server single
(only a single client talks to the server)
./client sync 4096 1000000
10.980143 s, 91073 msg/s, 11.0 us/msg, 355.733 MB/s
./client async 4096 1000000
3.041953 s, 328736 msg/s, 3.0 us/msg, 1284.044 MB/s
In all cases 1 msg means "send request + receive response".
Johannes
[-- Attachment #2: server.c --]
[-- Type: text/x-csrc, Size: 2339 bytes --]
/* UDS server */
#include <errno.h>
#include <poll.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/timerfd.h>
#include <sys/un.h>
// use abstract address
#define SOCKET "\0udsbench.socket"
static int die(const char *msg)
{
if (errno)
fprintf(stderr, "%s: error %d %m\n", msg, errno);
else
fprintf(stderr, "%s\n", msg);
if (errno != ECONNRESET)
exit(EXIT_FAILURE);
return 0;
}
int main(int argc, char *argv[])
{
struct sockaddr_un addr = {
.sun_family = AF_UNIX,
.sun_path = SOCKET,
};
int sock, client1, client2 = -1, rc, len;
struct pollfd pfd[2];
char buf[65536];
unsigned long cnt = 0;
bool single = false;
if (argc != 2)
die("usage: server {single|dbus}");
if (!strcmp(argv[1], "single"))
single = true;
printf("running in %s mode\n", single ? "single" : "dbus");
sock = socket(AF_UNIX, SOCK_SEQPACKET, 0);
if (sock < 0)
die("can't create socket");
if (bind(sock, (struct sockaddr *) &addr, sizeof(addr)) < 0)
die("can't bind address");
if (listen(sock, 5) < 0)
die("can't listen");
printf("waiting for client 1\n");
client1 = accept(sock, NULL, NULL);
if (client1 < 0)
die("accept");
if (!single) {
printf("waiting for client 2\n");
client2 = accept(sock, NULL, NULL);
if (client2 < 0)
die("accept");
write(client2, "\01", 1);
}
write(client1, "\0", 1);
printf("enter event loop\n");
pfd[0].fd = client1;
pfd[1].fd = client2;
pfd[0].events = pfd[1].events = POLLIN;
for (;;) {
rc = poll(pfd, single ? 1 : 2, -1);
if (rc < 0)
die("poll");
if (pfd[0].revents & POLLIN) {
len = read(client1, buf, sizeof(buf));
if (len < 0) {
die("read from client 1");
break;
}
if (len == 0) {
printf("client 1 EOF\n");
break;
}
rc = write(single ? client1 : client2, buf, len);
if (len != rc) {
die("write to client 2");
break;
}
cnt++;
}
if (pfd[1].revents & POLLIN) {
len = read(client2, buf, sizeof(buf));
if (len < 0) {
die("read from client 2");
break;
}
if (len == 0) {
printf("client 2 EOF\n");
break;
}
rc = write(client1, buf, len);
if (len != rc) {
die("write to client 1");
break;
}
cnt++;
}
}
printf("passed %lu messages\n", cnt);
return EXIT_SUCCESS;
}
[-- Attachment #3: client.c --]
[-- Type: text/x-csrc, Size: 2662 bytes --]
/* UDS client */
#include <alloca.h>
#include <errno.h>
#include <poll.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/timerfd.h>
#include <sys/un.h>
// use abstract address
#define SOCKET "\0udsbench.socket"
static int die(const char *msg)
{
if (errno)
fprintf(stderr, "%s: error %d %m\n", msg, errno);
else
fprintf(stderr, "%s\n", msg);
if (errno != EPIPE)
exit(EXIT_FAILURE);
return 0;
}
int main(int argc, char *argv[])
{
struct sockaddr_un addr = {
.sun_family = AF_UNIX,
.sun_path = SOCKET,
};
int sock, rc, client = 1, i;
char *buf;
struct timespec start, end;
double duration;
bool async = false;
struct pollfd pfd;
typeof(&read) f1, f2;
long msglen, loops;
if (argc != 4)
die("usage: client {sync|async} msglen loops");
if (!strcmp(argv[1], "async"))
async = true;
msglen = strtoul(argv[2], NULL, 0);
loops = strtoul(argv[3], NULL, 0);
printf("running in %s mode, msg size %lu, %lu loops\n",
async ? "async" : "sync", msglen, loops);
buf = alloca(msglen);
sock = socket(AF_UNIX, SOCK_SEQPACKET, 0);
if (sock < 0)
die("can't create socket");
if (connect(sock, (struct sockaddr *) &addr, sizeof(addr)) < 0)
die("can't connect");
printf("waiting for other client\n");
rc = read(sock, buf, 1);
if (rc != 1) {
die("read");
exit(EXIT_FAILURE);
}
if (buf[0] != '\0')
client = 2;
printf("this is client %d\n", client);
clock_gettime(CLOCK_MONOTONIC, &start);
if (client == 1)
f1 = (typeof(&read))write, f2 = read;
else
f1 = read, f2 = (typeof(&read))write;
if (async && client == 1) {
pfd.fd = sock;
pfd.events = POLLIN | POLLOUT;
for (i = 0; i < loops; ) {
rc = poll(&pfd, 1, -1);
if (rc == -1)
die("poll");
if (pfd.revents & POLLOUT) {
rc = write(sock, buf, msglen);
if (rc != msglen) {
die("write");
break;
}
}
if (pfd.revents & POLLIN) {
rc = read(sock, buf, msglen);
if (rc != msglen) {
die("read");
break;
}
i++;
}
}
}
else {
for (i = 0; i < loops; i++) {
rc = f1(sock, buf, msglen);
if (rc != msglen) {
die(f1 == read ? "read" : "write");
break;
}
rc = f2(sock, buf, msglen);
if (rc != msglen) {
die(f2 == read ? "read" : "write");
break;
}
}
}
clock_gettime(CLOCK_MONOTONIC, &end);
duration = end.tv_sec - start.tv_sec +
(end.tv_nsec - start.tv_nsec) * 1e-9;
printf("%f s, %.0f msg/s, %.1f us/msg, %.3f MB/s\n", duration,
loops / duration, duration * 1e6 / loops,
(loops * msglen >> 20) / duration);
return EXIT_SUCCESS;
}
[-- Attachment #4: Makefile --]
[-- Type: text/plain, Size: 79 bytes --]
CFLAGS := -O3 -Wall
CC := gcc
all: client server
clean:
rm -f client server
next prev parent reply other threads:[~2015-07-07 22:22 UTC|newest]
Thread overview: 360+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-13 19:03 [GIT PULL] kdbus for 4.1-rc1 Greg Kroah-Hartman
2015-04-13 19:29 ` Eric W. Biederman
2015-04-13 19:42 ` Greg Kroah-Hartman
2015-04-13 19:49 ` Richard Weinberger
2015-04-13 19:54 ` Greg Kroah-Hartman
2015-04-13 19:57 ` Richard Weinberger
2015-04-13 20:03 ` Greg Kroah-Hartman
2015-04-13 20:08 ` Richard Weinberger
2015-04-13 20:22 ` Al Viro
2015-04-13 20:37 ` Greg Kroah-Hartman
2015-04-15 1:36 ` Andy Lutomirski
2015-04-15 6:54 ` Richard Weinberger
2015-04-15 7:31 ` Mike Galbraith
2015-04-15 14:48 ` Michal Schmidt
2015-04-15 15:34 ` Mike Galbraith
2015-04-15 16:42 ` Mike Galbraith
2015-04-17 16:53 ` Mike Galbraith
2015-04-15 8:48 ` Greg Kroah-Hartman
2015-04-15 9:00 ` Richard Weinberger
2015-04-15 9:20 ` Greg Kroah-Hartman
2015-04-15 9:21 ` Borislav Petkov
2015-04-15 9:27 ` Greg Kroah-Hartman
2015-04-15 9:30 ` Richard Weinberger
2015-04-15 9:49 ` Greg Kroah-Hartman
2015-04-15 9:53 ` Richard Weinberger
2015-04-15 9:44 ` Borislav Petkov
2015-04-15 11:40 ` Greg Kroah-Hartman
2015-04-15 13:03 ` Borislav Petkov
2015-04-15 15:41 ` Steven Rostedt
2015-04-15 16:40 ` Greg Kroah-Hartman
2015-04-15 16:48 ` Jiri Kosina
2015-04-15 17:33 ` Greg Kroah-Hartman
2015-04-15 18:06 ` Steven Rostedt
2015-04-16 8:43 ` Jiri Kosina
2015-04-15 17:20 ` Steven Rostedt
2015-04-15 17:41 ` Havoc Pennington
2015-04-15 17:55 ` Greg Kroah-Hartman
2015-04-15 21:55 ` One Thousand Gnomes
2015-04-15 18:12 ` Greg Kroah-Hartman
2015-04-15 19:04 ` Martin Steigerwald
2015-04-15 9:28 ` Richard Weinberger
2015-04-15 11:25 ` One Thousand Gnomes
2015-04-15 13:20 ` Borislav Petkov
2015-04-15 15:45 ` Steven Rostedt
2015-04-15 15:46 ` Andy Lutomirski
2015-04-15 16:35 ` Greg Kroah-Hartman
2015-04-15 17:06 ` Steven Rostedt
2015-04-15 17:31 ` Greg Kroah-Hartman
2015-04-15 18:04 ` Steven Rostedt
2015-04-15 21:56 ` One Thousand Gnomes
2015-04-15 22:11 ` Andy Lutomirski
2015-04-15 22:18 ` Al Viro
2015-04-15 22:28 ` Andy Lutomirski
2015-04-15 22:48 ` Al Viro
2015-04-15 22:54 ` Andy Lutomirski
2015-04-15 23:27 ` Al Viro
2015-04-16 0:47 ` Andy Lutomirski
2015-04-16 1:04 ` Al Viro
2015-04-16 5:53 ` Andy Lutomirski
2015-04-15 22:56 ` Eric Dumazet
2015-04-16 10:31 ` Daniel Mack
2015-04-16 12:02 ` Tom Gundersen
2015-04-16 12:15 ` Olaf Hering
2015-04-16 12:43 ` Harald Hoyer
2015-04-21 16:36 ` Eric W. Biederman
2015-04-21 19:38 ` Matthew Garrett
2015-04-21 19:55 ` Austin S Hemmelgarn
2015-04-15 8:18 ` Martin Steigerwald
2015-04-15 8:32 ` Greg Kroah-Hartman
2015-04-15 8:52 ` Martin Steigerwald
2015-04-15 9:02 ` Greg Kroah-Hartman
2015-04-15 9:28 ` Martin Steigerwald
2015-04-15 11:52 ` Greg Kroah-Hartman
2015-04-15 8:29 ` Greg Kroah-Hartman
2015-04-14 0:19 ` Eric W. Biederman
2015-04-14 0:34 ` Andy Lutomirski
2015-04-14 17:55 ` Greg Kroah-Hartman
2015-04-21 21:06 ` Issues with capability bits and meta-data in kdbus Eric W. Biederman
2015-04-22 1:30 ` Linus Torvalds
2015-04-22 1:54 ` Andy Lutomirski
2015-04-22 2:32 ` Linus Torvalds
2015-04-22 3:19 ` Andy Lutomirski
2015-04-22 13:46 ` David Herrmann
2015-04-22 11:40 ` Austin S Hemmelgarn
2015-04-22 13:07 ` Greg Kroah-Hartman
2015-04-22 14:05 ` Austin S Hemmelgarn
2015-04-22 13:27 ` Havoc Pennington
2015-04-22 14:35 ` Michele Curti
2015-04-22 20:02 ` Havoc Pennington
2015-04-22 21:48 ` Linus Torvalds
2015-04-23 5:35 ` Havoc Pennington
2015-04-24 14:32 ` Olaf Hering
2015-04-24 14:39 ` Michele Curti
2015-04-24 15:02 ` Olaf Hering
2015-04-24 15:14 ` Michele Curti
2015-04-24 14:41 ` Jiri Kosina
2015-04-24 15:04 ` Olaf Hering
2015-04-24 17:52 ` Linus Torvalds
2015-04-24 18:00 ` Linus Torvalds
2015-04-23 8:38 ` Michele Curti
2015-04-22 10:45 ` One Thousand Gnomes
2015-04-22 11:41 ` David Herrmann
2015-04-22 8:58 ` [GIT PULL] kdbus for 4.1-rc1 Borislav Petkov
2015-04-23 19:14 ` Greg Kroah-Hartman
2015-04-23 20:56 ` Borislav Petkov
2015-04-23 21:22 ` David Herrmann
2015-04-23 21:33 ` Richard Weinberger
2015-04-24 14:02 ` Steven Rostedt
2015-04-23 21:41 ` Borislav Petkov
2015-04-24 5:02 ` Steven Noonan
2015-04-24 9:04 ` Borislav Petkov
2015-04-24 10:28 ` Daniel Mack
2015-04-24 10:50 ` Borislav Petkov
2015-04-24 11:26 ` Daniel Mack
2015-04-24 6:36 ` Greg Kroah-Hartman
2015-04-24 6:45 ` Greg Kroah-Hartman
2015-04-24 7:27 ` Martin Steigerwald
2015-04-24 8:35 ` Greg Kroah-Hartman
2015-04-13 20:13 ` Andy Lutomirski
2015-04-13 20:45 ` Greg Kroah-Hartman
2015-04-13 21:01 ` Andy Lutomirski
2015-04-14 17:50 ` Greg Kroah-Hartman
2015-04-14 18:57 ` Andy Lutomirski
2015-04-14 19:23 ` Greg Kroah-Hartman
2015-04-14 19:24 ` Borislav Petkov
2015-04-14 19:32 ` Greg Kroah-Hartman
2015-04-14 19:40 ` Al Viro
2015-04-14 19:48 ` Greg Kroah-Hartman
2015-04-14 19:53 ` Borislav Petkov
2015-04-15 8:44 ` Greg Kroah-Hartman
2015-04-15 8:54 ` Jiri Kosina
2015-04-15 9:09 ` Greg Kroah-Hartman
2015-04-15 12:36 ` Al Viro
2015-04-15 13:13 ` Greg Kroah-Hartman
2015-04-15 16:47 ` Steven Rostedt
2015-04-15 9:35 ` Borislav Petkov
2015-04-15 11:45 ` Greg Kroah-Hartman
2015-04-14 20:11 ` Martin Steigerwald
2015-04-14 22:39 ` Jiri Kosina
2015-04-15 8:38 ` Greg Kroah-Hartman
2015-04-15 10:37 ` One Thousand Gnomes
2015-04-15 11:49 ` Greg Kroah-Hartman
2015-04-15 12:03 ` One Thousand Gnomes
2015-04-15 12:41 ` Greg Kroah-Hartman
2015-04-15 14:06 ` One Thousand Gnomes
2015-04-15 16:27 ` Havoc Pennington
2015-04-15 12:55 ` Al Viro
2015-04-15 17:33 ` Steven Rostedt
2015-04-15 18:11 ` Greg Kroah-Hartman
2015-04-14 19:35 ` Al Viro
2015-04-14 19:43 ` Greg Kroah-Hartman
2015-04-15 17:59 ` Austin S Hemmelgarn
2015-04-15 18:04 ` Rik van Riel
2015-04-15 22:22 ` One Thousand Gnomes
2015-04-16 16:02 ` Havoc Pennington
2015-04-16 17:31 ` David Herrmann
2015-04-16 20:55 ` Al Viro
2015-04-18 11:44 ` David Herrmann
2015-04-16 16:37 ` Robert Schwebel
2015-04-17 13:45 ` Greg Kroah-Hartman
2015-04-21 16:54 ` Diego Viola
2015-04-21 17:06 ` Greg Kroah-Hartman
2015-04-21 17:25 ` Diego Viola
2015-04-14 20:14 ` John Stoffel
2015-04-14 21:51 ` Steven Rostedt
2015-04-14 22:05 ` Jiri Kosina
2015-04-15 6:56 ` Borislav Petkov
2015-04-15 8:37 ` Greg Kroah-Hartman
2015-04-15 18:12 ` James Bottomley
2015-04-16 12:13 ` David Herrmann
2015-04-17 19:27 ` James Bottomley
2015-04-17 20:27 ` Havoc Pennington
2015-04-17 21:45 ` Alex Elsayed
2015-04-20 18:01 ` James Bottomley
2015-04-21 8:09 ` Daniel Mack
2015-04-21 18:25 ` Andy Lutomirski
2015-04-15 8:35 ` Greg Kroah-Hartman
2015-04-15 12:00 ` Greg Kroah-Hartman
2015-04-15 12:09 ` Jiri Kosina
2015-04-15 12:18 ` One Thousand Gnomes
2015-04-15 12:30 ` Greg Kroah-Hartman
2015-04-15 12:27 ` Greg Kroah-Hartman
2015-04-14 22:33 ` Jiri Kosina
2015-04-15 8:56 ` Greg Kroah-Hartman
2015-04-15 11:06 ` One Thousand Gnomes
2015-04-15 16:00 ` Rik van Riel
2015-04-15 16:44 ` Havoc Pennington
2015-04-15 18:16 ` Steven Rostedt
2015-04-15 18:40 ` Havoc Pennington
2015-04-15 20:22 ` Andy Lutomirski
2015-04-15 20:41 ` Al Viro
2015-04-15 21:07 ` Rik van Riel
2015-04-16 18:03 ` Djalal Harouni
2015-04-15 21:58 ` Havoc Pennington
2015-04-16 13:13 ` Tom Gundersen
2015-04-16 14:34 ` Andy Lutomirski
2015-04-16 15:01 ` David Herrmann
2015-04-16 17:04 ` Andy Lutomirski
2015-04-17 9:19 ` Michal Hocko
2015-04-17 18:54 ` Andy Lutomirski
2015-04-20 12:43 ` Michal Hocko
2015-04-20 20:03 ` Andy Lutomirski
2015-04-16 19:01 ` Havoc Pennington
2015-04-17 13:23 ` Daniel Mack
2015-04-17 14:54 ` Havoc Pennington
2015-04-15 22:08 ` One Thousand Gnomes
2015-04-16 13:14 ` Daniel Mack
2015-04-16 17:15 ` One Thousand Gnomes
2015-04-23 13:05 ` Greg Kroah-Hartman
2015-04-23 13:06 ` [PATCH] kdbus: pool: use __vfs_read() Greg Kroah-Hartman
2015-04-23 14:17 ` [GIT PULL] kdbus for 4.1-rc1 One Thousand Gnomes
2015-04-23 16:36 ` Greg Kroah-Hartman
2015-04-23 16:46 ` Andy Lutomirski
2015-04-23 17:16 ` Greg Kroah-Hartman
2015-04-23 17:34 ` Andy Lutomirski
2015-04-23 17:42 ` Stephen Smalley
2015-04-23 19:30 ` Greg Kroah-Hartman
2015-04-24 2:08 ` Karol Lewandowski
2015-04-29 21:16 ` Paul Moore
2015-04-23 17:57 ` Linus Torvalds
2015-04-23 18:04 ` Linus Torvalds
2015-04-23 18:56 ` Greg Kroah-Hartman
2015-04-23 19:22 ` Andy Lutomirski
2015-04-23 19:33 ` Greg KH
2015-04-23 20:53 ` Linus Torvalds
2015-04-23 20:51 ` Linus Torvalds
2015-04-23 18:48 ` Linus Torvalds
2015-04-24 13:50 ` Lukasz Skalski
2015-04-24 14:19 ` Havoc Pennington
2015-04-24 14:34 ` Lukasz Skalski
2015-04-24 19:25 ` Greg Kroah-Hartman
2015-04-27 8:57 ` Lukasz Skalski
2015-04-27 17:18 ` Greg Kroah-Hartman
2015-04-27 22:29 ` David Lang
2015-04-28 10:53 ` Lukasz Skalski
2015-04-27 21:32 ` Linus Torvalds
2015-04-27 21:40 ` Andy Lutomirski
2015-04-27 22:00 ` Linus Torvalds
2015-04-27 22:14 ` Linus Torvalds
2015-04-28 13:44 ` Havoc Pennington
2015-04-28 14:48 ` Havoc Pennington
2015-04-28 17:18 ` Theodore Ts'o
2015-04-28 20:25 ` Havoc Pennington
2015-04-28 23:12 ` John Stoffel
2015-04-29 0:45 ` Havoc Pennington
2015-04-29 11:33 ` Harald Hoyer
2015-04-29 12:47 ` Harald Hoyer
2015-04-29 13:33 ` Richard Weinberger
2015-04-29 13:38 ` Harald Hoyer
2015-04-29 13:46 ` Richard Weinberger
2015-04-29 14:01 ` Harald Hoyer
2015-04-29 14:04 ` Richard Weinberger
2015-04-29 14:11 ` Harald Hoyer
2015-04-29 14:18 ` Richard Weinberger
2015-04-29 14:53 ` Harald Hoyer
2015-04-29 14:58 ` Richard Weinberger
2015-04-29 15:03 ` Theodore Ts'o
2015-04-29 15:21 ` Austin S Hemmelgarn
2015-04-30 9:05 ` Łukasz Stelmach
2015-04-30 9:12 ` Richard Weinberger
2015-04-30 10:19 ` Łukasz Stelmach
2015-04-30 10:40 ` Richard Weinberger
2015-04-30 12:16 ` Łukasz Stelmach
2015-04-30 12:23 ` Richard Weinberger
2015-04-30 12:40 ` Łukasz Stelmach
2015-04-30 12:45 ` Richard Weinberger
2015-04-30 14:52 ` Łukasz Stelmach
2015-04-30 15:05 ` Richard Weinberger
2015-07-03 9:13 ` cee1
2015-04-29 16:25 ` Martin Steigerwald
2015-04-29 14:46 ` Austin S Hemmelgarn
2015-04-29 14:51 ` Richard Weinberger
2015-04-29 15:07 ` Harald Hoyer
2015-04-29 15:17 ` Austin S Hemmelgarn
2015-04-29 15:22 ` Harald Hoyer
2015-04-29 15:41 ` Austin S Hemmelgarn
2015-04-29 18:28 ` Martin Steigerwald
2015-04-29 16:26 ` John Stoffel
2015-04-29 17:39 ` Steven Rostedt
2015-04-29 19:10 ` Martin Steigerwald
2015-04-29 19:28 ` John Stoffel
2015-04-29 22:49 ` Theodore Ts'o
2015-04-30 0:05 ` David Lang
2015-04-30 0:15 ` Dave Airlie
2015-04-30 0:18 ` David Lang
2015-04-30 1:20 ` Dave Airlie
2015-04-29 13:35 ` Stephen Smalley
2015-04-29 15:18 ` Simon McVittie
2015-04-29 17:48 ` Stephen Smalley
2015-04-29 15:27 ` Martin Steigerwald
2015-04-29 16:36 ` David Lang
2015-04-29 18:54 ` Andy Lutomirski
2015-04-29 19:30 ` Austin S Hemmelgarn
2015-04-29 19:42 ` Andy Lutomirski
2015-04-29 20:15 ` David Lang
2015-04-29 20:24 ` Andy Lutomirski
2015-04-29 20:43 ` David Lang
2015-04-29 20:51 ` David Herrmann
2015-04-30 1:42 ` John Stoffel
2015-04-29 22:34 ` John Stoffel
2015-04-30 20:14 ` Eric W. Biederman
2015-05-01 15:49 ` Austin S Hemmelgarn
2015-04-28 17:19 ` David Lang
2015-04-28 19:19 ` Havoc Pennington
2015-04-28 20:34 ` David Lang
2015-04-28 20:42 ` Andy Lutomirski
2015-04-28 20:43 ` Linus Torvalds
2015-06-22 17:33 ` Jindrich Makovicka
2015-06-22 20:23 ` Jiri Kosina
2015-06-22 21:24 ` Jindřich Makovička
2015-07-07 21:40 ` Johannes Stezenbach [this message]
2015-04-28 12:49 ` Havoc Pennington
2015-04-28 10:39 ` Lukasz Skalski
2015-04-23 18:33 ` Richard Weinberger
2015-04-23 19:01 ` Greg Kroah-Hartman
2015-04-23 18:57 ` Kdbus needs meaningful review (was: Re: [GIT PULL] kdbus for 4.1-rc1) Eric W. Biederman
-- strict thread matches above, loose matches on Subject: below --
2015-04-15 18:18 [GIT PULL] kdbus for 4.1-rc1 Linus Torvalds
2015-04-15 18:28 ` Linus Torvalds
2015-04-15 18:37 ` Greg Kroah-Hartman
2015-04-15 22:16 ` One Thousand Gnomes
2015-04-15 18:37 ` Greg Kroah-Hartman
2015-04-15 22:26 ` Andy Lutomirski
2015-04-16 18:20 ` David Herrmann
2015-04-20 20:43 ` Richard Weinberger
2015-04-20 20:56 ` Greg Kroah-Hartman
2015-04-20 21:16 ` Richard Weinberger
2015-04-20 21:46 ` Greg Kroah-Hartman
2015-04-20 22:06 ` Andy Lutomirski
2015-04-21 7:38 ` Johannes Stezenbach
2015-04-21 9:35 ` One Thousand Gnomes
2015-04-21 10:17 ` David Herrmann
2015-04-21 12:20 ` Michal Hocko
2015-04-21 14:01 ` David Herrmann
2015-04-21 14:27 ` Michal Hocko
2015-04-21 14:47 ` David Herrmann
2015-04-21 18:11 ` Andy Lutomirski
2015-04-22 14:57 ` Michal Hocko
2015-04-22 19:36 ` Andy Lutomirski
2015-04-27 12:46 ` Michal Hocko
2015-04-27 20:11 ` Andy Lutomirski
2015-04-29 17:24 ` Michal Hocko
2015-04-21 10:51 ` Greg Kroah-Hartman
2015-04-21 11:03 ` Jiri Kosina
2015-04-21 12:56 ` Greg Kroah-Hartman
2015-04-21 10:31 ` Greg Kroah-Hartman
2015-04-21 10:53 ` Borislav Petkov
2015-04-21 11:09 ` Greg Kroah-Hartman
2015-04-21 11:39 ` Borislav Petkov
2015-04-21 13:18 ` Olivier Galibert
2015-04-21 13:48 ` Greg Kroah-Hartman
2015-04-21 15:53 ` One Thousand Gnomes
2015-04-21 18:18 ` Andy Lutomirski
2015-04-21 8:18 ` Richard Cochran
2015-04-21 9:07 ` Johannes Stezenbach
2015-04-21 13:37 ` Havoc Pennington
2015-04-22 1:51 ` Bernd Petrovitsch
2015-04-22 3:11 ` Havoc Pennington
2015-04-22 13:09 ` Johannes Stezenbach
2015-04-20 20:26 George Spelvin
2015-04-21 12:08 ` Austin S Hemmelgarn
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=20150707214017.GA12313@sig21.net \
--to=js@sig21.net \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=daniel@zonque.org \
--cc=dh.herrmann@gmail.com \
--cc=ebiederm@xmission.com \
--cc=gnomes@lxorguk.ukuu.org.uk \
--cc=gregkh@linuxfoundation.org \
--cc=jkosina@suse.cz \
--cc=l.skalski@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=teg@jklm.no \
--cc=tixxdz@opendz.org \
--cc=torvalds@linux-foundation.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