Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp546711imu; Wed, 9 Jan 2019 02:12:20 -0800 (PST) X-Google-Smtp-Source: ALg8bN7JzfMh7LQPiAgZ9pPaO+xnhuLKUNAOqmkIb+OTvBtwtkcGvz5S9PFGzWUlUKayuCNzcNFk X-Received: by 2002:a17:902:7e44:: with SMTP id a4mr5411815pln.338.1547028740065; Wed, 09 Jan 2019 02:12:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547028740; cv=none; d=google.com; s=arc-20160816; b=c3gITnyMO6vsA3M+DpkQO8AS78ByB24A34WO8dobkvvPuyep4mpakQI84U9oG/ZKnY 4krsmmRWTvrlzZ6RFsfvIoNwBBcHGlqtkhEo7NUQifkO4qVV/BhRKaFKiwWJiz7SLtvS TKxTtNTz3UkMbAZ8HKZ6DruLxAcshbicdGb3cjGW1vv91xA4zM3pOb3M/SHn+LSQa8IE W89gQaCvPnFSjih8ANv5EkiBKEGP+1Ys51n0yDw6Sj3/TFm1WR5v1B7/Toa2+WUxX2ke 1zq2HLi0TEyKdMZlBQGUxFKjvJEuprbFg/wYh3DFRmnIsJjHWiB/aDpAdtDKf5eXw77k uPfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:message-id:references :in-reply-to:subject:cc:to:from:date:content-transfer-encoding :mime-version; bh=7hAmCPXzcaqOPpuIpR8ekkzYfx/AuiUEUS2d8pHeoG0=; b=K1R7Gk/qrQ8/qBFXiB1qXhQd2G9/5lfrPjk6goBtvhssAtcF88qjmo5zjCSsi8P1gv /eKpigGTktkadblR93W7aaFgMF0iQDy/mI9tDsvt8oiXJtERKjlpwmCduwgstL2S/MMR E9gJglAD5A+P3SjXVHfGtRhrV+civzcFEak6DXhktGQfWOzsKlhxu9HwLNbXfp5k+zf9 I1pkj4KWG12xNMqFOeCW5mmosXqWAhaM5xKTVL84P06x0o3rnw7yIyaPm3uPBoJLoa2b xBF+ZvH/rRjGTD3D3h0ZuOGyG8ohEfNDSydWBqUvNQX4Qer1YlX6+0Lxse+Sy7QQ85hH WCsA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g31si52035239pld.358.2019.01.09.02.12.04; Wed, 09 Jan 2019 02:12:20 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730150AbfAIKIf (ORCPT + 99 others); Wed, 9 Jan 2019 05:08:35 -0500 Received: from mx2.suse.de ([195.135.220.15]:42732 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729603AbfAIKIf (ORCPT ); Wed, 9 Jan 2019 05:08:35 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 0C169AEEB; Wed, 9 Jan 2019 10:08:34 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Wed, 09 Jan 2019 11:08:32 +0100 From: Roman Penyaev To: Andrew Morton Cc: Stephen Rothwell , Michal Hocko , "David S . Miller" , Peter Zijlstra , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/1] mm/vmalloc: Make vmalloc_32_user() align base kernel virtual address to SHMLBA In-Reply-To: <20190108113603.ea664e55869346bcb30c1433@linux-foundation.org> References: <20190108110944.23591-1-rpenyaev@suse.de> <20190108113603.ea664e55869346bcb30c1433@linux-foundation.org> Message-ID: X-Sender: rpenyaev@suse.de User-Agent: Roundcube Webmail Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2019-01-08 20:36, Andrew Morton wrote: > On Tue, 8 Jan 2019 12:09:44 +0100 Roman Penyaev > wrote: > >> This patch repeats the original one from David S. Miller: >> >> 2dca6999eed5 ("mm, perf_event: Make vmalloc_user() align base kernel >> virtual address to SHMLBA") >> >> but for missed vmalloc_32_user() case, which also requires correct >> alignment of virtual address on kernel side to avoid D-caches >> aliases. A bit of copy-paste from original patch to recover in >> memory of what is all about: >> >> When a vmalloc'd area is mmap'd into userspace, some kind of >> co-ordination is necessary for this to work on platforms with cpu >> D-caches which can have aliases. >> >> Otherwise kernel side writes won't be seen properly in userspace >> and vice versa. >> >> If the kernel side mapping and the user side one have the same >> alignment, modulo SHMLBA, this can work as long as VM_SHARED is >> shared of VMA and for all current users this is true. VM_SHARED >> will force SHMLBA alignment of the user side mmap on platforms with >> D-cache aliasing matters. > > What are the user-visible runtime effects of this change? In simple words: proper alignment avoids possible difference in data, seen by different virtual mapings: userspace and kernel in our case. I.e. userspace reads cache line A, kernel writes to cache line B. Both cache lines correspond to the same physical memory (thus aliases). So this should fix data corruption for archs with vivt and vipt caches, e.g. armv6. Personally I've never worked with this archs, I just spotted the strange difference in code: for one case we do alignment, for another - not. I have a strong feeling that David simply missed vmalloc_32_user() case. > > Is a -stable backport needed? No, I do not think so. The only one user of vmalloc_32_user() is virtual frame buffer device drivers/video/fbdev/vfb.c, which has in the description "The main use of this frame buffer device is testing and debugging the frame buffer subsystem. Do NOT enable it for normal systems!". And it seems to me that this vfb.c does not need 32bit addressable pages (vmalloc_32_user() case), because it is virtual device and should not care about things like dma32 zones, etc. Probably is better to clean the code and switch vfb.c from vmalloc_32_user() to vmalloc_user() case and wipe out vmalloc_32_user() from vmalloc.c completely. But I'm not very much sure that this is worth to do, that's so minor, so we can leave it as is. -- Roman