From patchwork Mon Apr 23 11:13:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 133991 Delivered-To: patch@linaro.org Received: by 10.46.151.6 with SMTP id r6csp860893lji; Mon, 23 Apr 2018 04:14:14 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+OiFlx6vIs8mxGH43Y92CUMMCVL+QLn/MewT8pux3di1Ruzz8nUk8d98UeqmI1713VKuvQ X-Received: by 10.98.8.12 with SMTP id c12mr19702884pfd.77.1524482054022; Mon, 23 Apr 2018 04:14:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524482054; cv=none; d=google.com; s=arc-20160816; b=Afwtowu5Eq0q4/0GN+UXMvP9C5gBFk9vwgEawu0KI9RVeBiUjl/Pzhf8Mcg46CibRb G2wx9kntyNdL1LbULAzdowEt4sBB98PMv7MMyKnkqFEprOPFEszkSnnQdF99wgQeXwKm oG0V4FuUKGBLrvNGyULtGP10iqtVi7niVzo98NkdgEcrwr3Ttezb7CJy/9j/6cwrYw92 wKxkKCKgK5mVnY5EA652eirwInyHHt4gh0iU2Ba8Xjlqys3k81XP43us7xZt3qNSUKEW iIhSOl9sxg69QMtzgHqajc3qCU2giwrTj54k+mXCFPIXV7j+IlpTf13qaSvu0uxN38/+ vssg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=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=huiw7G6Z+yENS+Rtu5fvH5QjcQ0J+IH4J6EIbpiLzaU=; b=LZKkuk2sht3zB/JL+tOD40ns6ORt4760wXKB2SC1uJ/uKbWRM1SIRY9/o07jGVqN8U 2Tz/Li8GCJ6nPRPcNGCJa+f4L4Z251rVyA0zgNWpRHlczOB58YzQphGcm6Ez2MDVJanb /yGL4DwY2Htd0vf5LzXJYUJRDvpPTAzTzr1kCHOuJRzABFRuFAwstvQTSrXw5fkZbpEq L7yw4zBikr9cCGrIO6KPKzA0qAaluPL5kPZt8KbIVwLV6tZTz6OIh2fFHf/cZLLO6G/8 8HaGUh8TxoJTpLwi3RV8/BSnl7NylrKzd9Xg1JtSY+axikc/wrV07zi5QaQ6c9GUWB+J uvsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=M10ZNpqU; spf=pass (google.com: domain of libc-alpha-return-91776-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=libc-alpha-return-91776-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 s21si11428756pfi.87.2018.04.23.04.14.13 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Apr 2018 04:14:14 -0700 (PDT) Received-SPF: pass (google.com: domain of libc-alpha-return-91776-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.s=default header.b=M10ZNpqU; spf=pass (google.com: domain of libc-alpha-return-91776-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=libc-alpha-return-91776-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; q=dns; s= default; b=X/aTDJSZDk/o2iA+krNmCb9Nr0bQ+/e+RzGmi80/MXdrS2kKWRmYM pWL8WxNMlmT/xYj8gHWGJHKs0yU/zzUWXnucgdbkV4r/qCYSBwFg5mUWy9wx6Km7 QArr9wuUtAMLsTvOkKJ2GRxVhQmVVN6m7FkTonknGLGR/FP5uLF0TU= 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; s=default; bh=CANfFbIXIW9xz55NuHyt6Mybxqo=; b=M10ZNpqUqYlnrQxw9FSErI5tIPXw qPz1LiXCFmfleSZTOckP5voxV1p/+28m3hM61bf4RmbLe4ezoHfH58C2OoJhKuZK rpaxup1i9sIovtpcyV7mMuPyNDP85BVL7zPaqpLuw4EuJZxg76n5QAHeVfbzm1wO ZnPZh4IgQEU1Lj4= Received: (qmail 77380 invoked by alias); 23 Apr 2018 11:14:04 -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 77365 invoked by uid 89); 23 Apr 2018 11:14:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=ahead, iii, HX-Google-Smtp-Source:sk:AB8JxZo, consolidate X-HELO: mail-qk0-f195.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; bh=huiw7G6Z+yENS+Rtu5fvH5QjcQ0J+IH4J6EIbpiLzaU=; b=lBEI0i3UiWjhJzPGzeoXfWbriFzv28ZMAu103LXe0NQoMhM4EwO0/hSURi21N7eiUY MqU55eC3V9cwdK17PBTtw//6yCVjdCp13WEGYWC+NWYeWQc7o5NsE5M4BBFsyzWbbiJe PRNHvlY6++qpR2+SmDTjJktKmTUS/b9jLbW/IDCXcFOPIcf7kKrOMCAXHzqhXIZikhre b5v4IUQNoRBaGED2CQ80C9IVvHQe7Zv+qWPvjHGP+i1Zh73hbJ2LLkIPK2wbdIs43CUd Z0fu9f7xorHGx2aEeuDvRaz9kST6SPc5zggsTLg/Dy283AGmeuyeCbYBOpU4cjuCCJrm xRoA== X-Gm-Message-State: ALQs6tDp+SkI6g3px1p53iotcvfr8c0UUHZ91FF4LKTTuc21WbjMaC45 lM2areuepEFfi2wxotD2e7q9z0Zm78A= X-Received: by 10.55.121.1 with SMTP id u1mr22100243qkc.79.1524482039230; Mon, 23 Apr 2018 04:13:59 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [PATCH] Consolidate Linux readahead implementation Date: Mon, 23 Apr 2018 08:13:54 -0300 Message-Id: <1524482034-32142-1-git-send-email-adhemerval.zanella@linaro.org> This patch consolidate Linux readahead implementation on generic sysdeps/unix/sysv/linux/readahead.c one. The changes are: - Assume __NR_readahead existence with current minimum kernel of 3.2 for all architectures. - Use INLINE_SYSCALL_CALL, __ALIGNMENT_ARG, and SYSCALL_LL64 to pass the 64 bit offset. This allows architectures with different abis to use the same implementation. - Remove arch-specific supreflous code. Checked on x86_64-linux-gnu and i686-linux-gnu. * sysdeps/unix/sysv/linux/arm/readahead.c: Remove file. * sysdeps/unix/sysv/linux/mips/mips32/readahead.c: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list (readahead): Remove. * sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/readahead.c (__readahead): Assume __NR_readahead existence, and use INLINE_SYSCALL_CALL, __ALIGNMENT_ARG, and SYSCALL_LL64. --- ChangeLog | 13 ++++++++ sysdeps/unix/sysv/linux/arm/readahead.c | 37 ---------------------- sysdeps/unix/sysv/linux/mips/mips32/readahead.c | 1 - .../unix/sysv/linux/mips/mips64/n32/syscalls.list | 2 -- .../unix/sysv/linux/mips/mips64/n64/syscalls.list | 2 -- .../sysv/linux/powerpc/powerpc32/syscalls.list | 3 -- sysdeps/unix/sysv/linux/readahead.c | 24 +++----------- sysdeps/unix/sysv/linux/wordsize-64/syscalls.list | 1 - 8 files changed, 17 insertions(+), 66 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/arm/readahead.c delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/readahead.c -- 2.7.4 diff --git a/sysdeps/unix/sysv/linux/arm/readahead.c b/sysdeps/unix/sysv/linux/arm/readahead.c deleted file mode 100644 index 4a3c87f..0000000 --- a/sysdeps/unix/sysv/linux/arm/readahead.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Provide kernel hint to read ahead. - Copyright (C) 2002-2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - . */ - -#include -#include -#include -#include - -#include -#include - - -ssize_t -__readahead (int fd, off64_t offset, size_t count) -{ - return INLINE_SYSCALL (readahead, 5, fd, 0, - __LONG_LONG_PAIR ((off_t) (offset >> 32), - (off_t) (offset & 0xffffffff)), - count); -} - -weak_alias (__readahead, readahead) diff --git a/sysdeps/unix/sysv/linux/mips/mips32/readahead.c b/sysdeps/unix/sysv/linux/mips/mips32/readahead.c deleted file mode 100644 index 80170c3..0000000 --- a/sysdeps/unix/sysv/linux/mips/mips32/readahead.c +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list b/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list index 5f3d047..33d968f 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list @@ -4,8 +4,6 @@ # return value. lseek64 - lseek i:iii __lseek64 __libc_lseek64 lseek64 llseek -readahead - readahead i:iii __readahead readahead - prlimit64 EXTRA prlimit64 i:iipp prlimit64 fanotify_mark EXTRA fanotify_mark i:iiiis fanotify_mark diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list b/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list index 2866420..8e7d516 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list @@ -1,7 +1,5 @@ # File name Caller Syscall name # args Strong name Weak names -readahead - readahead i:iii __readahead readahead - prlimit EXTRA prlimit64 i:iipp prlimit prlimit64 fanotify_mark EXTRA fanotify_mark i:iiiis fanotify_mark diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list b/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list index 9313747..966856e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list @@ -3,8 +3,5 @@ chown - chown i:sii __chown chown@@GLIBC_2.1 lchown - lchown i:sii __lchown lchown@@GLIBC_2.0 chown@GLIBC_2.0 -# Due to 64bit alignment there is a dummy second parameter -readahead - readahead i:iiiii __readahead readahead - prlimit64 EXTRA prlimit64 i:iipp prlimit64 fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark diff --git a/sysdeps/unix/sysv/linux/readahead.c b/sysdeps/unix/sysv/linux/readahead.c index 49f5eb4..f84d210 100644 --- a/sysdeps/unix/sysv/linux/readahead.c +++ b/sysdeps/unix/sysv/linux/readahead.c @@ -16,31 +16,15 @@ License along with the GNU C Library; if not, see . */ -#include #include -#include - +#include #include -#include - - -#ifdef __NR_readahead ssize_t __readahead (int fd, off64_t offset, size_t count) { - return INLINE_SYSCALL (readahead, 4, fd, - __LONG_LONG_PAIR ((off_t) (offset >> 32), - (off_t) (offset & 0xffffffff)), - count); + return INLINE_SYSCALL_CALL (readahead, fd, + __ALIGNMENT_ARG SYSCALL_LL64 (offset), + count); } -#else -ssize_t -__readahead (int fd, off64_t offset, size_t count) -{ - return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS); -} -stub_warning (readahead) -#endif - weak_alias (__readahead, readahead) diff --git a/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list b/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list index 4bb7ebf..5de6ec8 100644 --- a/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list +++ b/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list @@ -2,7 +2,6 @@ fstatfs - fstatfs i:ip __fstatfs fstatfs fstatfs64 __fstatfs64 statfs - statfs i:sp __statfs statfs statfs64 -readahead - readahead i:iii __readahead readahead sendfile - sendfile i:iipi sendfile sendfile64 prlimit EXTRA prlimit64 i:iipp prlimit prlimit64