From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 84D5FC25B74 for ; Thu, 16 May 2024 13:20:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CB1A36B007B; Thu, 16 May 2024 09:20:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C60306B0082; Thu, 16 May 2024 09:20:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ACE486B0083; Thu, 16 May 2024 09:20:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 1ACE36B007B for ; Thu, 16 May 2024 09:20:10 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id CB63DA26DB for ; Thu, 16 May 2024 13:20:09 +0000 (UTC) X-FDA: 82124317338.09.104FA1D Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.16]) by imf23.hostedemail.com (Postfix) with ESMTP id F0AFC140013 for ; Thu, 16 May 2024 13:20:06 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=C7jsI+Gk; spf=pass (imf23.hostedemail.com: domain of lkp@intel.com designates 198.175.65.16 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715865607; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=tluV7Kac00HnBy1UvCqhkqQVTKUx31fNrv7PefOYXK8=; b=r5FL39MAWAMc2HwqvNLvjsHkv5zAxe4JhjV5oeZFw7tYtse9C1jfvucllWMFHLhMzr8+CZ P5XkgGcRBB15qUAGzacPpO15LOSyaILNX2MXpQR+yEKlqXEts8hu4UTaeZ1B3bEk5CcaDL vHWkM6CGd8HWLtUAWdbJPE/IKxs8XdQ= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=C7jsI+Gk; spf=pass (imf23.hostedemail.com: domain of lkp@intel.com designates 198.175.65.16 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715865607; a=rsa-sha256; cv=none; b=8WTal+/qQ4F/iRcAdWzKxg9F73fj8p7M790A3oCIYj6e2D7aEe3C+w7ga8mFNtab/NZC1V dEIVwA6qSCqhhrkzAXuNnyLwYpJWEScmnY97V+CxSaCyGcq0gb6yGv+9IJqaQ09SvxkYCX 2X99gYS/6GmRGaOjIPiYRCSKqkMGCno= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1715865607; x=1747401607; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=S/7bv2DW/RD5v55OFxWspAXUnoxf9fnBX1m+bUjyDos=; b=C7jsI+Gkhdr9qUR6tbZVSTEYyiloduas/tqVdlROLAckrfup7YZKlneV CQ5IvvCxIsa513WAqsip4Aq9AdC3w6FMx3UE0/bFS+BWrR6tcm7EllFaD 8/uescl0a92sVcN7V0Y1wvszUCY7nFLxS2XABaG8c6EkAhl+VmmzLEKlk 1HcgaEC6bll35Mcfa62uM0e0R7oJX+ObBUub8+dD3rYEDTsm4Z6B0sIVa jx61KY33f0jPURqESeT6p9eIR2C2LVvUXU5xwRlcLyR7Ty0nJq2xSNuva SrqR3CtJDRg3KiP8YauW6o9swUf0wIoBFjZzL+PFamPDCrYI+Ij3/orH/ Q==; X-CSE-ConnectionGUID: jVqMEQ44RzuoCYpcvdofFw== X-CSE-MsgGUID: meHr28MURguoVQbXKCmEUQ== X-IronPort-AV: E=McAfee;i="6600,9927,11074"; a="12087062" X-IronPort-AV: E=Sophos;i="6.08,164,1712646000"; d="scan'208";a="12087062" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by orvoesa108.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 May 2024 06:20:05 -0700 X-CSE-ConnectionGUID: GYJLNoBZRE2e5mjP1Y+xtg== X-CSE-MsgGUID: eLjji0ibTOy19GYkWIHYbw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,164,1712646000"; d="scan'208";a="35975470" Received: from lkp-server01.sh.intel.com (HELO f8b243fe6e68) ([10.239.97.150]) by fmviesa004.fm.intel.com with ESMTP; 16 May 2024 06:20:00 -0700 Received: from kbuild by f8b243fe6e68 with local (Exim 4.96) (envelope-from ) id 1s7b1Z-000EGh-2R; Thu, 16 May 2024 13:19:57 +0000 Date: Thu, 16 May 2024 21:19:40 +0800 From: kernel test robot To: Daniel Gomez , "hughd@google.com" , "akpm@linux-foundation.org" , "willy@infradead.org" , "jack@suse.cz" , "mcgrof@kernel.org" Cc: oe-kbuild-all@lists.linux.dev, "linux-mm@kvack.org" , "linux-xfs@vger.kernel.org" , "djwong@kernel.org" , Pankaj Raghav , "dagmcr@gmail.com" , "yosryahmed@google.com" , "baolin.wang@linux.alibaba.com" , "ritesh.list@gmail.com" , "lsf-pc@lists.linux-foundation.org" , "david@redhat.com" , "chandan.babu@oracle.com" , "linux-kernel@vger.kernel.org" , "brauner@kernel.org" , Daniel Gomez Subject: Re: [PATCH 07/12] shmem: check if a block is uptodate before splice into pipe Message-ID: <202405162045.kaXgB2n3-lkp@intel.com> References: <20240515055719.32577-8-da.gomez@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240515055719.32577-8-da.gomez@samsung.com> X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: F0AFC140013 X-Stat-Signature: kttjbggppxpk7hgsa7nsg7bm7cnazkks X-HE-Tag: 1715865606-180745 X-HE-Meta: U2FsdGVkX18WTOmKJsJZizPkVOiNqogZ4t4fqEXHPYDcFTaTYf7VLLLjKui8sX/JI9djvIaofncbvcerOdLB0xPn0VnNUK9ZDUeMP+w02OOjI5/V4vRuF7Ci0zUJY2WHwitMnhyWkfRb31lG4oXZlmXLlY6BnqJCcmpI0ecAt0Eqqf7+hT6VLi51JXjMznuZKqx1d8t1edGzO3LKvJ36rBz6CvDlL/PPkP5aIOu+K4hHriIaVWQ+eJauEi3p4N3kWbOhioXZnXLrbe2bs0GHOwRnEmf/F8XPHnVubcTl2OsXk1WIfieqFLRbJWXbZoImWqAo1sAmYq2TQo751XTV4zL3b5FXPKODvVHUQPO5dPJ8eCDx5v5oEgaGSjvPTDxnbSYYS3SnnT3qijXBkbDXJRz6jC5uz1uGdbf/k74eNkn+ZFZph7Yhtcb5bgV1R4Xoc0uVn5d8fFxzvmAwPRjpew5WqyFs0c2X3UrJ8f3zfRq+6S7kxvjIKp9qwqoTmbsOEG1C6TBxkLq6r1dcIkbEvhMP2DG0IgbcdOV9GbhEu8JJOucmgAAI7RDO4C6Rj4p5jgs2S/yDV+4zg/gaWe1xYB/Z/i629m5PYa0VEIrY0SbMhzzfEFxSTFg1ghYmnM904c+FaGCpxTEOjpS/cCt6c5DqrP+oVFB4RfLzagMawSSlBYX1QaIuLgwRBztqKKGaKwfjApMalVpgT+zlH37rQzu123b4j2rGqp1bfAJTt7ro+G6ydyUrTDL01iLps/e+AURYGjiJAZyho24Z3vOubuQq+icIpURVcxbbA6JlzkX53dGocMmy0FArIWGWSqBbjeGPIcpevtOL49Mz3U4oK5B3+Qlsq/AOLogmMWn6ixLZjkqD+jAtyhLMJsdMFSGcMDGBg8GtIYmZVcZbDXdObuR0QL/10auD+oQ9d+ljCzI6tputwtq1oUUlTCO6MEPo8NHdeysB51fqxWCd8OD RQZxFwsv O15y8bSNBOd+KgcoOrdKS5QoNyiFWcjpqwccU4U5AyGckoSCxMglUQTilpL1kSvfxLJ12TtwoS+0b9ZR3jDY4OoxmfWV6UWMuSz3a13AfhI0ZzvV6jOvPJjcNlhAepDJyTpkR2D5PhkDhqSGCcHc29z0ZIg6IW7lo8D0zp9g6CIxULeDM5DDEirE3Z00yZvGPWUNZeZ4RsYgIvBXh1Bt2kbT5y8x6Q55vfB8NjD0Em7GP5KXesk9q2C6sN8yn83gj4PBgmw5Iem331tel0fs7oDMsiS+UGdw+bBZ9xssXJ1sH/yPGRRM9Aji4krvf/nO3nXleIEDDfu4hM5IHTNSnwlhQv8VO8zLcZ8gsZZBjLmAXT8oHpywjqNtmysXdu7QmgWkuC/bDSyTKQj6Sb1n46CQfJi7914ZUhkg5r+6HRFVezmE2RkWMK3g1dZ2IockX74nK2ZoSPr1o+LJ9X/+JdrAD0mYVBD6OnVWxF9Ga3GA8jdOmVfs3xTd2Qw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Daniel, kernel test robot noticed the following build errors: [auto build test ERROR on akpm-mm/mm-everything] [also build test ERROR on xfs-linux/for-next brauner-vfs/vfs.all linus/master v6.9 next-20240516] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Daniel-Gomez/splice-don-t-check-for-uptodate-if-partially-uptodate-is-impl/20240515-135925 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything patch link: https://lore.kernel.org/r/20240515055719.32577-8-da.gomez%40samsung.com patch subject: [PATCH 07/12] shmem: check if a block is uptodate before splice into pipe config: arm-s5pv210_defconfig (https://download.01.org/0day-ci/archive/20240516/202405162045.kaXgB2n3-lkp@intel.com/config) compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240516/202405162045.kaXgB2n3-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202405162045.kaXgB2n3-lkp@intel.com/ All errors (new ones prefixed by >>): arm-linux-gnueabi-ld: mm/shmem.o: in function `shmem_file_splice_read': >> mm/shmem.c:3240:(.text+0x5224): undefined reference to `__aeabi_ldivmod' vim +3240 mm/shmem.c 3174 3175 static ssize_t shmem_file_splice_read(struct file *in, loff_t *ppos, 3176 struct pipe_inode_info *pipe, 3177 size_t len, unsigned int flags) 3178 { 3179 struct inode *inode = file_inode(in); 3180 struct address_space *mapping = inode->i_mapping; 3181 struct folio *folio = NULL; 3182 size_t total_spliced = 0, used, npages, n, part; 3183 loff_t isize; 3184 int error = 0; 3185 3186 /* Work out how much data we can actually add into the pipe */ 3187 used = pipe_occupancy(pipe->head, pipe->tail); 3188 npages = max_t(ssize_t, pipe->max_usage - used, 0); 3189 len = min_t(size_t, len, npages * PAGE_SIZE); 3190 3191 do { 3192 if (*ppos >= i_size_read(inode)) 3193 break; 3194 3195 error = shmem_get_folio(inode, *ppos / PAGE_SIZE, &folio, 3196 SGP_READ); 3197 if (error) { 3198 if (error == -EINVAL) 3199 error = 0; 3200 break; 3201 } 3202 if (folio) { 3203 folio_unlock(folio); 3204 3205 if (folio_test_hwpoison(folio) || 3206 (folio_test_large(folio) && 3207 folio_test_has_hwpoisoned(folio))) { 3208 error = -EIO; 3209 break; 3210 } 3211 } 3212 3213 /* 3214 * i_size must be checked after we know the pages are Uptodate. 3215 * 3216 * Checking i_size after the check allows us to calculate 3217 * the correct value for "nr", which means the zero-filled 3218 * part of the page is not copied back to userspace (unless 3219 * another truncate extends the file - this is desired though). 3220 */ 3221 isize = i_size_read(inode); 3222 if (unlikely(*ppos >= isize)) 3223 break; 3224 part = min_t(loff_t, isize - *ppos, len); 3225 if (folio && folio_test_large(folio) && 3226 folio_test_private(folio)) { 3227 unsigned long from = offset_in_folio(folio, *ppos); 3228 unsigned int bfirst = from >> inode->i_blkbits; 3229 unsigned int blast, blast_upd; 3230 3231 len = min(folio_size(folio) - from, len); 3232 blast = (from + len - 1) >> inode->i_blkbits; 3233 3234 blast_upd = sfs_get_last_block_uptodate(folio, bfirst, 3235 blast); 3236 if (blast_upd <= blast) { 3237 unsigned int bsize = 1 << inode->i_blkbits; 3238 unsigned int blks = blast_upd - bfirst + 1; 3239 unsigned int bbytes = blks << inode->i_blkbits; > 3240 unsigned int boff = (*ppos % bsize); 3241 3242 part = min_t(loff_t, bbytes - boff, len); 3243 } 3244 } 3245 3246 if (folio && shmem_is_block_uptodate( 3247 folio, offset_in_folio(folio, *ppos) >> 3248 inode->i_blkbits)) { 3249 /* 3250 * If users can be writing to this page using arbitrary 3251 * virtual addresses, take care about potential aliasing 3252 * before reading the page on the kernel side. 3253 */ 3254 if (mapping_writably_mapped(mapping)) 3255 flush_dcache_folio(folio); 3256 folio_mark_accessed(folio); 3257 /* 3258 * Ok, we have the page, and it's up-to-date, so we can 3259 * now splice it into the pipe. 3260 */ 3261 n = splice_folio_into_pipe(pipe, folio, *ppos, part); 3262 folio_put(folio); 3263 folio = NULL; 3264 } else { 3265 n = splice_zeropage_into_pipe(pipe, *ppos, part); 3266 } 3267 3268 if (!n) 3269 break; 3270 len -= n; 3271 total_spliced += n; 3272 *ppos += n; 3273 in->f_ra.prev_pos = *ppos; 3274 if (pipe_full(pipe->head, pipe->tail, pipe->max_usage)) 3275 break; 3276 3277 cond_resched(); 3278 } while (len); 3279 3280 if (folio) 3281 folio_put(folio); 3282 3283 file_accessed(in); 3284 return total_spliced ? total_spliced : error; 3285 } 3286 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki