From patchwork Thu Aug 3 13:11:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 109330 Delivered-To: patch@linaro.org Received: by 10.140.101.6 with SMTP id t6csp763415qge; Thu, 3 Aug 2017 06:12:53 -0700 (PDT) X-Received: by 10.101.77.6 with SMTP id i6mr1530326pgt.181.1501765972977; Thu, 03 Aug 2017 06:12:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1501765972; cv=none; d=google.com; s=arc-20160816; b=tApCYiVSbd2kRTrvqn+TTQxj3nwXV3a7hfxYjaTUwp2uhkp5gpo1kxwg8R1Kp/EPf+ 4ErUZLzPvcsg0G1MB/cneFHuwsGEi+8p1kP9E2M3EmIL32SsUO4FGivX0Z6joHhBm04D iy9MgocMT7JGPGw7ijutU4e9tAVHlJiD/VyMx4qJZIZs+YEW9MazYmKXBePnEmtniUNQ 8I7vPmFr4vVCfzJ0irOz4FI0Nejy1fjefviIUs/1EW/UECPDFVpxjr3sO7wgwHRL5rp+ Haq1JHanF7ZfqF22/+88kbiWOvQvlC1jSOTGN+GKBSWYb7JVQWsxz1Lxve5uyNtQ+9X/ 2fkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:to:from:delivered-to :sender:list-help:list-post:list-archive:list-subscribe :list-unsubscribe:list-id:precedence:mailing-list:dkim-signature :domainkey-signature:arc-authentication-results; bh=fTPoROjamyC8ywDmvVoov7SXEkfzSnPQE4/ImI0kWak=; b=TKVH2e7l61Bsd3XQs5BSS20JDHk+fp5aCd3t9zlafhUE9MMG492kB9kgtipgLi4DJR KrS76yEjw2PvI+nCFcAV0va04RCV6WCaXouhCUHj3JRRdItYiWzDCN2VMOMhZibR3vzz QXpxzfw0p436OtnaI5eegL741ShUjE9wVz2Z05qwhSo9tE73BffcY5ViysPtXQnsFa6z qZ813tVy/XoLxnqzEW21Gfn+x2FDlI52juJ9Nd1hqzsRs56X3tZycvY0BRBGVwVbTfOc gV61nGoFRwPxuXUPKHX8SGW+9ZGd/EhVFdB+M2U/em4KVDYpKgWYcIPGegpvfOc1h3C0 wFWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.b=I3oPceZ0; spf=pass (google.com: domain of libc-alpha-return-82684-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=libc-alpha-return-82684-patch=linaro.org@sourceware.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id x12si23346666plm.396.2017.08.03.06.12.52 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Aug 2017 06:12:52 -0700 (PDT) Received-SPF: pass (google.com: domain of libc-alpha-return-82684-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.b=I3oPceZ0; spf=pass (google.com: domain of libc-alpha-return-82684-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=libc-alpha-return-82684-patch=linaro.org@sourceware.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; q=dns; s=default; b=QkJUk+T9BamURS+zkLvDweNXXN6i+8t 6zkMdNgjVPoGMwc1ozQG+L3CXxQDGwpkQLU9o5CRBh9veZltWnphCUUK6C1x3kwm qUJ1Z0UPG0O/qz/rOWUr/SF3GC7KUNAcOgEMdElcaRghH21zNSInCVa5EJvHlmmT 5Mh7Z/7y0vqo= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; s=default; bh=Inz3vg8kjFfeX8NHYfNFLRJb2eQ=; b=I3oPc eZ0BBrVXhlB2SpaQ1lHkDEGmq6rhK78/VbY68pOkJrloAyxO6fjw20rY9udBtNBl Pc+rjod7J/L8PHsw+bqi649fG3ER+fkqCVWEUl+Dutrykw67kXBAG1BKWB0bA5SA BM1AsaxRc4O9MfXq+CTrhLmLKRGOgNVe2uskMs= Received: (qmail 61402 invoked by alias); 3 Aug 2017 13:11:51 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 61334 invoked by uid 89); 3 Aug 2017 13:11:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-qk0-f175.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=fTPoROjamyC8ywDmvVoov7SXEkfzSnPQE4/ImI0kWak=; b=CsCDlG3IndeCJxn5wfqQuzl8XCSV/eIRu3+ODB6UEZJ8NkJyuzcgYL0ahG8aI0XFIi S33wI55Dk9PyjuS4hJLtwrJI8fAjzY0g1Vds3Vk+MVofVrc547s5Ekfgf1B/OxKjAKzf Jb7dv6Y1tRwq7TpQXFV71Qz5oGQkC3L8gu3rYs1WGJCHKtUaReH5dvbELtleSC8ur2u6 9b/VDx8jht0lVueivwjlb9DbgSzv6Ack9g74IgqnvJqQmtOJQFdqiVu0NMJX8FtslnPu nfOwXjYKu3VrbrPmY5NTkliLVAJik0cd8kO/OIbs5cUN5IMQEDmV1TlDNy+QArx87w8o LGEQ== X-Gm-Message-State: AHYfb5gZB49BQY9k+by4A+fQkMnoHbHTMMhekyXU6w0dqVFDvValAPvh dRhvKAK41scd47H/ePEGvg== X-Received: by 10.55.121.6 with SMTP id u6mr2383892qkc.111.1501765905392; Thu, 03 Aug 2017 06:11:45 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [PATCH 06/14] Consolidate non cancellable writev call Date: Thu, 3 Aug 2017 10:11:06 -0300 Message-Id: <1501765874-6201-7-git-send-email-adhemerval.zanella@linaro.org> In-Reply-To: <1501765874-6201-1-git-send-email-adhemerval.zanella@linaro.org> References: <1501765874-6201-1-git-send-email-adhemerval.zanella@linaro.org> This patch consolidates all the non cancellable writev calls to use the __writev_nocancel identifier. For non cancellable targets it will be just a macro to call the default respective symbol while on Linux will be a internal one. Checked on x86_64-linux-gnu, x86_64-linux-gnu-x32, and i686-linux-gnu. * gmon/gmon.c (write_hist): Replace writev_not_cancel_no_status with __writev_nocancel_nostatus. (write_call_graph): Likewise. (write_bb_counts): Likewise. * resolv/herror.c (herror): Likewise. * sysdeps/generic/not-cancel.h (writev_not_cancel_no_status): Remove macro. (__writev_nocancel_nostatus): New macro. * sysdeps/unix/sysv/linux/not-cancel.h (writev_not_cancel_no_status): Remove macro. (__writev_nocancel_nostatus): New function. --- ChangeLog | 12 ++++++++++++ gmon/gmon.c | 12 ++++++------ resolv/herror.c | 2 +- sysdeps/generic/not-cancel.h | 2 +- sysdeps/unix/sysv/linux/not-cancel.h | 12 ++++++++---- 5 files changed, 28 insertions(+), 12 deletions(-) -- 2.7.4 diff --git a/ChangeLog b/ChangeLog index 4ee70fb..fbf0c6a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,17 @@ 2017-08-02 Adhemerval Zanella + * gmon/gmon.c (write_hist): Replace writev_not_cancel_no_status with + __writev_nocancel_nostatus. + (write_call_graph): Likewise. + (write_bb_counts): Likewise. + * resolv/herror.c (herror): Likewise. + * sysdeps/generic/not-cancel.h (writev_not_cancel_no_status): Remove + macro. + (__writev_nocancel_nostatus): New macro. + * sysdeps/unix/sysv/linux/not-cancel.h (writev_not_cancel_no_status): + Remove macro. + (__writev_nocancel_nostatus): New function. + * sysdeps/generic/not-cancel.h (close_not_cancel): Remove macro. (close_not_cancel_no_status): Likewise. (__close_nocancel): New macro. diff --git a/gmon/gmon.c b/gmon/gmon.c index 90c7895..c1d1701 100644 --- a/gmon/gmon.c +++ b/gmon/gmon.c @@ -216,7 +216,7 @@ write_hist (int fd) strncpy (thdr.dimen, "seconds", sizeof (thdr.dimen)); thdr.dimen_abbrev = 's'; - writev_not_cancel_no_status (fd, iov, 3); + __writev_nocancel_nostatus (fd, iov, 3); } } @@ -273,13 +273,13 @@ write_call_graph (int fd) if (++nfilled == NARCS_PER_WRITEV) { - writev_not_cancel_no_status (fd, iov, 2 * nfilled); + __writev_nocancel_nostatus (fd, iov, 2 * nfilled); nfilled = 0; } } } if (nfilled > 0) - writev_not_cancel_no_status (fd, iov, 2 * nfilled); + __writev_nocancel_nostatus (fd, iov, 2 * nfilled); } @@ -312,12 +312,12 @@ write_bb_counts (int fd) for (grp = __bb_head; grp; grp = grp->next) { ncounts = grp->ncounts; - writev_not_cancel_no_status (fd, bbhead, 2); + __writev_nocancel_nostatus (fd, bbhead, 2); for (nfilled = i = 0; i < ncounts; ++i) { if (nfilled > (sizeof (bbbody) / sizeof (bbbody[0])) - 2) { - writev_not_cancel_no_status (fd, bbbody, nfilled); + __writev_nocancel_nostatus (fd, bbbody, nfilled); nfilled = 0; } @@ -325,7 +325,7 @@ write_bb_counts (int fd) bbbody[nfilled++].iov_base = &grp->counts[i]; } if (nfilled > 0) - writev_not_cancel_no_status (fd, bbbody, nfilled); + __writev_nocancel_nostatus (fd, bbbody, nfilled); } } diff --git a/resolv/herror.c b/resolv/herror.c index b3df236..45c0a5d 100644 --- a/resolv/herror.c +++ b/resolv/herror.c @@ -89,7 +89,7 @@ herror(const char *s) { v++; v->iov_base = (char *) "\n"; v->iov_len = 1; - writev_not_cancel_no_status(STDERR_FILENO, iov, (v - iov) + 1); + __writev_nocancel_nostatus(STDERR_FILENO, iov, (v - iov) + 1); } /* diff --git a/sysdeps/generic/not-cancel.h b/sysdeps/generic/not-cancel.h index ee9988a..e3ed0e6 100644 --- a/sysdeps/generic/not-cancel.h +++ b/sysdeps/generic/not-cancel.h @@ -34,7 +34,7 @@ __read (fd, buf, n) #define __write_nocancel(fd, buf, n) \ __write (fd, buf, n) -#define writev_not_cancel_no_status(fd, iov, n) \ +#define __writev_nocancel_nostatus(fd, iov, n) \ (void) __writev (fd, iov, n) #define fcntl_not_cancel(fd, cmd, val) \ __fcntl (fd, cmd, val) diff --git a/sysdeps/unix/sysv/linux/not-cancel.h b/sysdeps/unix/sysv/linux/not-cancel.h index 684541a..419a3fa 100644 --- a/sysdeps/unix/sysv/linux/not-cancel.h +++ b/sysdeps/unix/sysv/linux/not-cancel.h @@ -63,10 +63,14 @@ __close_nocancel_nostatus (int fd) INTERNAL_SYSCALL (close, err, 1, (fd)); } -/* Uncancelable writev. */ -#define writev_not_cancel_no_status(fd, iov, n) \ - (void) ({ INTERNAL_SYSCALL_DECL (err); \ - INTERNAL_SYSCALL (writev, err, 3, (fd), (iov), (n)); }) +/* Non cancellable writev syscall that does not also set errno in case of + failure. */ +static inline void +__writev_nocancel_nostatus (int fd, const struct iovec *iov, int iovcnt) +{ + INTERNAL_SYSCALL_DECL (err); + INTERNAL_SYSCALL_CALL (writev, err, fd, iov, iovcnt); +} /* Uncancelable fcntl. */ #define fcntl_not_cancel(fd, cmd, val) \