Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp3209923ybe; Sun, 15 Sep 2019 09:58:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqwMG2VERmyJeoaHPXTcq5g/UOv+v3FDFK0UE9rLL1eq+++bug6s9YZKnIJeUNcr5iZEBQ5Q X-Received: by 2002:a50:fc12:: with SMTP id i18mr12207537edr.25.1568566725648; Sun, 15 Sep 2019 09:58:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568566725; cv=none; d=google.com; s=arc-20160816; b=XVkkj5IhPNZEtnEQ44SMfNOcn9DdxumBnyST9EFJZK3mkzEY8HjYWWoF+IEyfnAeqf 7nBd/jxhxH/l5Pbe8p1paXrUqkBDtfLcPRF36nIj+yUEg+2OZzft3iUGEYNJIHXmcv04 YP82lgqQIwcYTTemorJ+rfnsMrXEEtTXfGC9JuMGuLxAcxLb14+lsRQ/dHW2KBST1FXl z3A8LOrQGrQZ4FqtnHBhHSTulkfXgTqJ7z9gN+Xqnh67U8bNi0QbkBZeijk6DvNwkjaM 4uKVmKduF2qfGPGXP7epK4DB6y9Qa91wbvFtlikXVK3lPUz/4v9XfXiX27t3QzinFoSp 4oEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=jSWQJqSgzi0rRB4MB03H01txRo3ZEbvDz6ZQVxWpBys=; b=sqtgTzEmfC2fzI44bXJ+TNoucfd97C2otlV1ho96v+P8U9ejX6Cnf2CxxZdH90ztEA IzKtIUD9NFxPVSJtwfpfKLn4MrkIZCqQbGjt5BZt7XLuhYqnTaKOJ3jVS1rsO9L/RTfP LQ3xXw/6QjL7o6kdJFKVBG+GpFhx7/I4872VkztK5bVniZOZrSpaomPRsaUkHIq77tJ4 dvYXU9snEDUFp447kEE+iQi4A6VP9QLsjXqLwb6/07H8nieaYJ+kWn85aFd35Zy2BSho 1g2Uh8nkevKJPDYGxMeWnKKaIP2uGr5flWOlP+CQ2UMUK9vAUP8wkClhsWc2ggcIFLKc JlUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Erd+t2mi; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y17si14435169edt.101.2019.09.15.09.58.21; Sun, 15 Sep 2019 09:58:45 -0700 (PDT) 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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Erd+t2mi; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731881AbfIOQL3 (ORCPT + 99 others); Sun, 15 Sep 2019 12:11:29 -0400 Received: from mail-ua1-f65.google.com ([209.85.222.65]:42519 "EHLO mail-ua1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726147AbfIOQL3 (ORCPT ); Sun, 15 Sep 2019 12:11:29 -0400 Received: by mail-ua1-f65.google.com with SMTP id r19so501294uap.9; Sun, 15 Sep 2019 09:11:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=jSWQJqSgzi0rRB4MB03H01txRo3ZEbvDz6ZQVxWpBys=; b=Erd+t2miEUQ/AY1Xlk+AweRMJFkMT8HBCeMLi11DDHsLxD3Pa+IqMMXIIfpxyaYhcG /aeqOlIwCYg6UM/tDyIoZOzBbwegNscxVfzC87LjiAuTcUitlULaD43HLu1zPGiw2KV7 TtOqFoNFHyRVONUq8TR/fBzZ3V2cEZgobua0m3r83q4AS8SOETKr4QTzb6qM+zjYkXkn C0McYEJ04d28z1hAaR3s6PCOpns71MG3rz2RwRp/xOw3R8BsUR5Ze3KD033+y5FJkzTj jyMnZE1dAxwc8bPBY+AVxQQFvzm3lVu6JHSaeAcK5gCGk7S1StHWlSABfVPHr5DYmWwh t5QQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jSWQJqSgzi0rRB4MB03H01txRo3ZEbvDz6ZQVxWpBys=; b=km/kpBdLHwretiwjzbhZzGvhdII/h4avAv/uIcK+q83KC9SiAbQiRe+gztb3HE6/11 9U8KpaCFkqgX0ed8kq03wVQE8uXbPllYRL8Oe8qFVmmhK7WkLlu01uAA9x9XlkLzHGak rWUjg1qkyTh6JPFddK7UgkYhmOfDW+bezyl/uK0w/lVglJFkQyzmq9eN1ufmJH/hiyEC BEGqVzvMKK95LZe0cKzh/gvuKm4Z3IPELBqzyTOLJF0r/hSTlLgsnpfpCHB5lhjXOyII OulJP4XpX8soGviFVrodGtBlvQD3Te/Ug5B4Ri4WP6rGYb00B3A5eFLY37qDzVlIFTR3 B9EA== X-Gm-Message-State: APjAAAVGMnRhPnOkg44rIYzLM+BdYfvliGSuemtGCyuoKlkT3/yLn4Dk ou9UBoPS96BaYzBQ/2W4PlHP/DjT4KpVscHXFXE= X-Received: by 2002:ab0:2808:: with SMTP id w8mr21830317uap.75.1568563886024; Sun, 15 Sep 2019 09:11:26 -0700 (PDT) MIME-Version: 1.0 References: <20190828160817.6250-1-gregkh@linuxfoundation.org> <20190914133951.16501-1-qkrwngud825@gmail.com> <20190915135409.GA553917@kroah.com> In-Reply-To: <20190915135409.GA553917@kroah.com> From: Ju Hyung Park Date: Mon, 16 Sep 2019 01:11:14 +0900 Message-ID: Subject: Re: [PATCH] staging: exfat: add exfat filesystem code to To: Greg KH Cc: alexander.levin@microsoft.com, devel@driverdev.osuosl.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Valdis Kletnieks Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Greg, On Sun, Sep 15, 2019 at 10:54 PM Greg KH wrote: > Note, this just showed up publically on August 12, where were you with > all of this new code before then? :) My sdFAT port, exfat-nofuse and the one on the staging tree, were all made by Samsung. And unless you guys had a chance to talk to Samsung developers directly, those all share the same faith of lacking proper development history. The source I used was from http://opensource.samsung.com, which provides kernel sources as tar.gz files. There is no code history available. > For the in-kernel code, we would have to rip out all of the work you did > for all older kernels, so that's a non-starter right there. I'm aware. I'm just letting mainline know that there is potentially another (much better) base that could be upstreamed. If you want me to rip out older kernel support for upstreaming, I'm more than happy to do so. > As for what codebase to work off of, I don't want to say it is too late, > but really, this shows up from nowhere and we had to pick something so > we found the best we could at that point in time. To be honest, whole public exFAT sources are all from nowhere unless you had internal access to Samsung's development archive. The one in the current staging tree isn't any better. I'm not even sure where the staging driver is from, actually. Samsung used the 1.2.x versioning until they switched to a new code base - sdFAT. The one in the staging tree is marked version 1.3.0(exfat_super.c). I failed to find anything 1.3.x from Samsung's public kernel sources. The last time exFAT 1.2.x was used was in Galaxy S7(released in 2016). Mine was originally based on sdFAT 2.1.10, used in Galaxy S10(released in March 2019) and it just got updated to 2.2.0, used in Galaxy Note10(released in August 2019). > Is there anything specific in the codebase you have now, that is lacking > in the in-kernel code? Old-kernel-support doesn't count here, as we > don't care about that as it is not applicable. But functionality does > matter, what has been added here that we can make use of? This is more of a suggestion of "Let's base on a *much more recent* snapshot for the community to work on", since the current one on the staging tree also lacks development history. The diff is way too big to even start understanding the difference. With that said though, I do have some vague but real reason as to why sdFAT base is better. With some major Android vendors showing interests in supporting exFAT, Motorola notably published their work on public Git repository with full development history(the only vendor to do this that I'm aware of). Commits like this: https://github.com/MotorolaMobilityLLC/kernel-msm/commit/7ab1657 is not merged to exFAT(including the current staging tree one) while it did for sdFAT. The only thing I regret is not working on porting sdFAT sooner. I definitely didn't anticipate Microsoft to suddenly lift legal issues on upstreaming exFAT just around when I happen to gain interest in porting sdFAT. If my port happened sooner, it would have been a no-brainer for it to be considered as a top candidate for upstreaming. > And do you have any "real" development history to look at instead of the > "one giant commit" of the initial code drop? That is where we could > actually learn what has changed over time. Your repo as-is shows none > of the interesting bits :( As I mentioned, development history is unobtainable, even for the current staging tree or exfat-nofuse. (If you guys took exfat-nofuse, you can also see that there's barely any real exFAT-related development done in that tree. Everything is basically fixes for newer kernel versions.) The best I could do, if someone's interested, is to diff all versions of exFAT/sdFAT throughout the Samsung's kernel versions, but that still won't give us reasons as to why the changes were made. TL;DR My suggestion - Let's base on a much newer driver that's matured more, contains more fixes, gives (slightly?) better performance and hopefully has better code quality. Both drivers are horrible. You said it yourself(for the current staging one), and even for my new sdFAT-base proposal, I'm definitely not comfortable seeing this kind of crap in mainline: https://github.com/arter97/exfat-linux/commit/0f1ddde However, it's clear to me that the sdFAT base is less-horrible. Please let me know what you think. > thanks, > > greg kh Thanks.