Re: [PATCH xserver] AttendClient of grab-pervious client should queue to saved_ready_clients
On Wed, 2017-01-11 at 09:02 -0800, Keith Packard wrote: > Adam Jacksonwrites: > > > 80 columns max, please. > > Wrapped. D'oh, this was in two places but I only commented on the one. > > The conditional is always true, which makes me wonder what > > conditional > > you meant to write instead. > > Good catch; I was just reading the cases where listen_to_client could > return FALSE and yet the client should not be marked ready, and not > looking at the line in AttendClient which was zeroing the > COMM_IGNORED bit. > > Here's a second version: lgtm, merged: remote: E: failed to find patch for rev 785053d033e73d2deb0ded4b97eabfd881991978. remote: I: 0 patch(es) updated to state Accepted. To ssh://git.freedesktop.org/git/xorg/xserver 436da93..785053d master -> master Patch not found in patchwork at minimum because I fixed up the long comment line in include/dixstruct.h as well. Probably also because patchwork sucks at patches sent as attachments. We've got a few serious bugfixes in master since 1.19 at this point, I'll cherry-pick those back and push out a 1.19.1. - ajax ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH libpciaccess 1/2] linux sysfs: retrieve vendor, device... info via separate sysfs files
On 11 January 2017 at 15:59, Adam Jacksonwrote: > On Wed, 2017-01-11 at 11:16 +, Emil Velikov wrote: >> Anyone ? > > Merged 1/2: > > remote: I: patch #125069 updated using rev > 73db249c4b1eb91e0df27a1045bea344371dd2ca. > remote: I: 1 patch(es) updated to state Accepted. > To ssh://git.freedesktop.org/git/xorg/lib/libpciaccess >099489b..73db249 master -> master > > What's the motivation for 2/2? limit.h is indeed where PATH_MAX is > defined, right? > Felix's patch was committed twice. commit 6bd2f7f92eae713663f4e13f6e2cb23526607b8c Author: Felix Janda Commit: Alan Coopersmith linux_sysfs.c: Include for PATH_MAX commit 8ea3af620a2d4ad5648917b4a0ef2b23ff566774 Author: Felix Janda Commit: Adam Jackson linux_sysfs: include for PATH_MAX -Emil ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH xserver] AttendClient of grab-pervious client should queue to saved_ready_clients
Adam Jacksonwrites: > 80 columns max, please. Wrapped. > The conditional is always true, which makes me wonder what conditional > you meant to write instead. Good catch; I was just reading the cases where listen_to_client could return FALSE and yet the client should not be marked ready, and not looking at the line in AttendClient which was zeroing the COMM_IGNORED bit. Here's a second version: From 501d68e3b399b038528c3b37d7c81008d6744d8d Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 9 Jan 2017 18:10:21 -0800 Subject: [PATCH xserver] AttendClient of grab-pervious client should queue to saved_ready_clients [v2] A client which is attended while a grab is blocking execution of its requests needs to be placed in the saved_ready_clients list so that it will get scheduled once the grab terminates. Otherwise, if the client never sends another request, there is no way for it to be placed in the ready_clients list. v2: Wrap comment above mark_client_saved_ready. Remove test for OS_COMM_IGNORED which will always be true. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99333 Signed-off-by: Keith Packard --- dix/dispatch.c | 10 ++ include/dixstruct.h | 3 +++ os/connection.c | 4 3 files changed, 17 insertions(+) diff --git a/dix/dispatch.c b/dix/dispatch.c index 3d0fe26fd..78ac095b1 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -266,6 +266,16 @@ mark_client_ready(ClientPtr client) xorg_list_append(>ready, _clients); } +/* + * Client has requests queued or data on the network, but awaits a + * server grab release + */ +void mark_client_saved_ready(ClientPtr client) +{ +if (xorg_list_is_empty(>ready)) +xorg_list_append(>ready, _ready_clients); +} + /* Client has no requests queued and no data on network */ void mark_client_not_ready(ClientPtr client) diff --git a/include/dixstruct.h b/include/dixstruct.h index d71b0ac05..fd9195972 100644 --- a/include/dixstruct.h +++ b/include/dixstruct.h @@ -143,6 +143,9 @@ extern void SmartScheduleStopTimer(void); /* Client has requests queued or data on the network */ void mark_client_ready(ClientPtr client); +/* Client has requests queued or data on the network, but awaits a server grab release */ +void mark_client_saved_ready(ClientPtr client); + /* Client has no requests queued and no data on network */ void mark_client_not_ready(ClientPtr client); diff --git a/os/connection.c b/os/connection.c index a901ebf3c..62e298072 100644 --- a/os/connection.c +++ b/os/connection.c @@ -1067,6 +1067,10 @@ AttendClient(ClientPtr client) set_poll_client(client); if (listen_to_client(client)) mark_client_ready(client); +else { +/* grab active, mark ready when grab goes away */ +mark_client_saved_ready(client); +} } /* make client impervious to grabs; assume only executing client calls this */ -- 2.11.0 -- -keith signature.asc Description: PGP signature ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH xserver] AttendClient of grab-pervious client should queue to saved_ready_clients
On Mon, 2017-01-09 at 18:14 -0800, Keith Packard wrote: > +/* Client has requests queued or data on the network, but awaits a server > grab release */ 80 columns max, please. > @@ -1067,6 +1067,10 @@ AttendClient(ClientPtr client) Additional context here: oc->flags &= ~OS_COMM_IGNORED; > set_poll_client(client); > if (listen_to_client(client)) > mark_client_ready(client); > +else if (!(oc->flags & OS_COMM_IGNORED)) { > +/* grab active, mark ready when grab goes away */ > +mark_client_saved_ready(client); > +} > } The conditional is always true, which makes me wonder what conditional you meant to write instead. - ajax ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH libpciaccess 1/2] linux sysfs: retrieve vendor, device... info via separate sysfs files
On Wed, 2017-01-11 at 11:16 +, Emil Velikov wrote: > Anyone ? Merged 1/2: remote: I: patch #125069 updated using rev 73db249c4b1eb91e0df27a1045bea344371dd2ca. remote: I: 1 patch(es) updated to state Accepted. To ssh://git.freedesktop.org/git/xorg/lib/libpciaccess 099489b..73db249 master -> master What's the motivation for 2/2? limit.h is indeed where PATH_MAX is defined, right? - ajax ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH libpciaccess 1/2] linux sysfs: retrieve vendor, device... info via separate sysfs files
On 16 December 2016 at 19:10, Emil Velikovwrote: > On 1 December 2016 at 18:17, Emil Velikov wrote: >> From: Emil Velikov >> >> Currently the kernel does not expose the revision file. With that about >> to change (due in 4.10) we can read all the information required from >> separate files and avoid opening the config one. >> >> The latter has the [negative] side effect of waking up the device, which >> in some cases can be quite costly. >> >> Cc: Adam Jackson >> Signed-off-by: Emil Velikov >> --- >> Adam, as suggested - here we fallback to config, if one is using an old >> kernel. > > Adam, others, > > Humble ping on this and 2/2 ? > Anyone ? -Emil ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH v2 xserver 3/4] dri2: refine dri2_probe_driver_name (v2)
On 11 January 2017 at 05:59, Qiang Yuwrote: > V2: > 1. update comment > 2. check bustype if PCI > 3. configure add libdrm version check for drmGetDevice > > Get PCI information from info->fd with drmGetDevice instead of > assuming the info->fd is the first entity of scrn which is not > true for multi entities scrn. > > Signed-off-by: Qiang Yu > --- > configure.ac | 7 ++- > hw/xfree86/dri2/dri2.c | 43 --- > 2 files changed, 30 insertions(+), 20 deletions(-) > > diff --git a/configure.ac b/configure.ac > index 93c81a6..a2de471 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -1340,7 +1340,12 @@ AM_CONDITIONAL(DRI3, test "x$DRI3" = xyes) > if test "x$DRI" = xyes || test "x$DRI2" = xyes || test "x$DRI3" = xyes || > test "x$CONFIG_UDEV_KMS" = xyes; then > if test "x$DRM" = xyes; then > AC_DEFINE(WITH_LIBDRM, 1, [Building with libdrm support]) > - PKG_CHECK_MODULES([LIBDRM], $LIBDRM) > + if test "x$DRI2" = xyes; then > + dnl 2.4.65 is required for drmGetDevice > + PKG_CHECK_MODULES([LIBDRM], libdrm >= 2.4.65) > + else > + PKG_CHECK_MODULES([LIBDRM], $LIBDRM) > + fi > fi > fi > > diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c > index 2165603..f9f9859 100644 > --- a/hw/xfree86/dri2/dri2.c > +++ b/hw/xfree86/dri2/dri2.c > @@ -1440,21 +1440,17 @@ get_prime_id(void) > static char * > dri2_probe_driver_name(ScreenPtr pScreen, DRI2InfoPtr info) > { > -ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); > -EntityInfoPtr pEnt = xf86GetEntityInfo(pScrn->entityList[0]); > -struct pci_device *pdev = NULL; > +#ifdef WITH_LIBDRM Nicely spotted ! I wonder if/how things were building w/o the guard. Reviewed-by: Emil Velikov -Emil ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel