Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754088AbbHFDOB (ORCPT ); Wed, 5 Aug 2015 23:14:01 -0400 Received: from mail-bn1bon0144.outbound.protection.outlook.com ([157.56.111.144]:12992 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751867AbbHFDOA (ORCPT ); Wed, 5 Aug 2015 23:14:00 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=scottwood@freescale.com; Message-ID: <1438830829.2097.143.camel@freescale.com> Subject: Re: [RFC v4] genalloc:support memory-allocation with bytes-alignment to genalloc From: Scott Wood To: Zhao Qiang CC: , , , , , , Date: Wed, 5 Aug 2015 22:13:49 -0500 In-Reply-To: <1438757404-17777-1-git-send-email-qiang.zhao@freescale.com> References: <1438757404-17777-1-git-send-email-qiang.zhao@freescale.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.16.0-fta1 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Originating-IP: [2601:448:8100:f9f:12bf:48ff:fe84:c9a0] X-ClientProxiedBy: BY2PR04CA0009.namprd04.prod.outlook.com (10.255.247.19) To CY1PR03MB1488.namprd03.prod.outlook.com (25.163.17.18) X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1488;2:jIrtnltHrG8GTIJ3nROyScQbRVpuIDPJ6/YqOUcM4s9BKTAkb6RuRQZLh5vj2abNeeqsv/Wl6P8ftwP5AKC4ycQNAO2xX6PH7LUKZgC1S70MqQtknEucU7kauXsEUUWt/SxTHA2sZjojQl1HrMyxMbXd2C6AH6kDR9ax33G4gvM=;3:bD2t9yGxaJeFrsSHrRyDh3OK0dTU2topBBFSNLVFe7PtxTvE0bZGzfYvSie+3Pe+MqMZPRDJORZ5kk1U1FhWQF3TGzcBfPHMb7c6x3NXG/hQcM763aQy58ESPspfG7dNNMnrNQU21Po6sOP28ZgM3w==;25:CNjdCwV3el8EAr/1vE/BAnTmLSk57yyvPxm8B2RzIKfIjBtM0ci47ezMi4TaXzHUxb6Y234ON5OPmdqhkZvLqmi0P6wHVDt30xdAHAaTPb+Y3kRKktxidqIAtxcRm5KnqaSUxNNJ4bul7N39bQdeqO7a1QPPDyXrRDCRKPb6t6vC9vZrs+EEUH2//jQ61++3oUsxCSYEwf0kFIs18JN4J7FEQkRaLHAWJW83sn/9NwuHbYp5T7EmGU1jpO2tUP+CBDxFHO4DdtXRIdd53NqEEA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1488; X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1488;20:iDL37hEDc0XKcQPqJ4kAvBg0Xz0RoPqeG71Fj/gSv2IG0FsEsG/dQa9gqmYg6+mLp7mZ2aMNkELcisPeJ3UyqXBzUtnpQm6FcFm1RBiYBhfJX8UVsdhhqJNUtHp5fYt4rZf3YhZjsdNWVeL36etYMT4kifUP3132lI9zFEnWBXvPQmUAi59nGolaXe3xtqzVD3pS070rWxFJ5vMtEH4vXK5Q+GfDE/2OrcHzBO2DSBH4FjuX5/QddZGIsoFXV6QQHNvOmGEkuzZZZMIdqsQeP/Z6eSQ4yBsW9KEC6TZ0xBN7q0t0F0xdZsOfA0zyWN9vixwt9WF9+AF/DfhD1catC7uJFwTM0ebl/BhTk9ggr2ZdVLzs9BBEONGx8MrBrgkJ2csyc9EatFwNuXBzZlUmaCOvNUz2wlnFRyyVnJ7GpXZfG7QDOl/yRxIVIIYhcRLfdpKH1//nH1SV6n3px156VqCRdU21cP8L3TdfV/86QXPv4MzNyYTKDwmWd/YEu6FL;4:3/0xZis60VGfeODLP1VXGHbu3VdoJFepgwHeHg8kPQ0gUGmri8CPP59Z80nuBmr7aWcoghu/rFBv682v1nX2qvdM7jito1TVBZor2CBO7n8q6DifubP27vBA1EgQCjbwYIVfCB4DsViWEFEHQ0/2zkzhjJiO9dpK6soJ+89R0KToCOg7SY9BFxTa1/UpTLwsaJXAdKo2AGuvvDCaPRbDklEZKOcGg6j2A4DIuFV5NI+VpmCMLq5ZGsVMSrUx/RbgtVXqpoea6HzpMBF4Bcgdk8SEpSmxEu1zI11qXJ2wXiQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:CY1PR03MB1488;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1488; X-Forefront-PRVS: 06607E485E X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(189002)(377424004)(199003)(24454002)(5001830100001)(5001860100001)(50466002)(2950100001)(50226001)(36756003)(103116003)(76176999)(64706001)(101416001)(19580405001)(5001960100002)(107886002)(189998001)(110136002)(5820100001)(47776003)(15975445007)(4001450100002)(77096005)(97736004)(68736005)(4001540100001)(81156007)(92566002)(46102003)(19580395003)(77156002)(106356001)(62966003)(105586002)(33646002)(42186005)(50986999)(122386002)(40100003)(86362001)(87976001)(23676002)(99106002)(3826002)(5001840100002)(4001430100001);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR03MB1488;H:[IPv6:2601:448:8100:f9f:12bf:48ff:fe84:c9a0];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAzTUIxNDg4OzIzOmlFdkl3eTlUd2Rta251T2VDZXB2aFhNbFBn?= =?utf-8?B?L0cyanpCTTZza28vNDVUTXRBNTZ5Q3ZwSk5RWXM3eHE5SWNtU0NLN0pvRE1V?= =?utf-8?B?SFRrT1p6VDNYUjRYMld0d1F0dTJUaXkzbENUQkliVjRLVXhOOEdyZFNsanlO?= =?utf-8?B?LzhDUjJKWEorWkZqZmovS1lmcU9qTUNPZXY3R3ppaEtGeXN6TGVBWWlVYy9a?= =?utf-8?B?cFlvcHl3NDYrSzlZRy9MNForV1EwaTRaNTRzbzJXMVo5WDVvVGRwbGg0RmRW?= =?utf-8?B?ajBnVXJGOE4xVXY4OEZDdTU5K1lKeUM5dExuQ2pwQUY0cThyZkRzVmV2eVQ0?= =?utf-8?B?QUpxTlp2bXZRQzFsZkZKcys5a09NM1NHTmhhaW5XSTgrTDN5Y09xUUUvbXd2?= =?utf-8?B?QTBSQ3U1ZmpBWkRxZE42MjhaVXdPYTdlMG92SXM2cmk5cG1tbmw3Z29rOXc1?= =?utf-8?B?aW85ZXR1ekxaVmdsRC9MSlVEeDNob3BZd3RBbG1mRjlZeE00NG5XQWV0MFNn?= =?utf-8?B?TXpKbUtadkZrT0RIZGpJUkJTY0lqZyt3ektXNEJTV1o5M2FWRDFoa3F6dWQ1?= =?utf-8?B?REhRbnZXMldxWVl0Mkg5WFlUN0RseDNhempkNVJ3U2M1OHpxaTlneXlEa1dv?= =?utf-8?B?c2ZxRVVVRDc0YjNYWmdESStzd0Q5WUlnL2oyM1FKOGRrSXpxNzl0N2x3QUNU?= =?utf-8?B?Z0hZNTNwZ1E1OUZScVNmR3FmNVdPSFVxWFl6VWRTWDhBeTJQRStYUXdvWHFw?= =?utf-8?B?K2hIQ3dTTlN1R0s5WjY3dTNqMDBTZW9kWklma0pXOHpVcUExaGgwQ2ExNVVP?= =?utf-8?B?ZS9qVWpaeW41dlNsNzdVNm5zWk9EeEtvYmRuUm5zNFMwcy9QekFsUGNtM1Zq?= =?utf-8?B?NmxNK3hVVFEwVjJUQVdxS3BNRFI2cENkWTVTOGlUZUJ3YWVpRVViUXMycUdt?= =?utf-8?B?L0NqdmhicEhFYzBPZG95Nk5xUjdBUEZscTR0elk5dk52L2YyTms4NDRBUDlH?= =?utf-8?B?cHVqd0VLZ2VqbzdmYUQzRmo0QXlQVDY2eEppTS9NY3JtQWYxcmlEcHZxTkJV?= =?utf-8?B?MmtwSWVzTlB4NXVJL0dkS3RXWmRxNWp4SXlINUtLL2xWTXF2Zll0RHNJdkpu?= =?utf-8?B?MlN4UktNdW9oQVNKbG8rbTlON0lHRW8ycXE5V3JVcmtJbmU1WFN2ME9jMkdi?= =?utf-8?B?WTkyWmt6NjNSTVBWWWQxSGFka2dCcVVYd29OVk9IcHhrL1VacjUzWFQ3K0Vu?= =?utf-8?B?VlVFV2V0RHJaQm1Gb2xVMHdkVW5lc0tlLytvREkzczJiK1QvZ0hGOXhYbWU5?= =?utf-8?B?bzhSS1lFTFNwVHdmbUEweW15Qjlhb3ZUa0F2ek5VV0x3N2p6dWZQOXFiZ2xV?= =?utf-8?B?eEIwdkJOZ2tZMVJFOWJBK0Nnd1dRS1U3ZGZpK3V6TUVBUGhUdWorUDBHVkRD?= =?utf-8?B?c0xhaFltR05xc0RESVoxSk5taGVHaUdHZzJVZ0hSLzhhdSsxRHZ5Q1dYSXhq?= =?utf-8?B?QnpnUndST1UzbWhxdHMxSnIyc2YxbzNoejhsRWtIcVkxZ0V1alV2em13ck5x?= =?utf-8?B?QjZERWllcnBCVVRpdGxickNBeENHOTRQakhXYjI5dEdEY1hpNktzVkdsNXcr?= =?utf-8?B?NWpab2tqc3lYZmZTVk5HbzFXRlFIQWE3ZVhPSDc3WG1ya3V5RHRLM3hTUThM?= =?utf-8?Q?5ltfrEOIpmQDJW5d5fdre8iF1Gc8Cf2c1fdUGd5?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1488;5:d0CL4pZiiuqRLC9viXS8d9L1OraGG+LSpcuF4KZbh8ogLUBNpYB0Rg/lk7pWQmbuRcWfI1IzA5scya77XF7F+44a2jNCPYLP7weCeePoDdA6frT7qqfNU7KsoDY7yHEMs1t3J78WbgMeykwyWjZbIQ==;24:7kuiPBJXSLZgXP7CyaUN8jz2Tk4JhS/zy6bECMrMSrjBZ2QgJ3C6TlUiJiQbc5V09fcnAkpoGggkCMsbGfRpmePhhg3Wk5p0GgWGokSoeZ0=;20:dGOs8khPDIs4o3BZ3S2kcSui4d9IRtmxOnoYpXIlSCfCRlr6P14Hi1OZilOr1CZ+hN8D3SJ+gJcSj6cV7UBpcA== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2015 03:13:56.1148 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB1488 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2988 Lines: 78 On Wed, 2015-08-05 at 14:50 +0800, Zhao Qiang wrote: > Bytes alignment is required to manage some special RAM, > so add gen_pool_first_fit_align to genalloc, > meanwhile add gen_pool_alloc_data to pass data to > gen_pool_first_fit_align(modify gen_pool_alloc as a wrapper) > > Signed-off-by: Zhao Qiang > --- > *v2: > changes: > title has been modified, original patch link: > http://patchwork.ozlabs.org/patch/493297/ > > original patch add a func gen_pool_alloc_align, > then pass alignment to it as an parameter. > after discussing with lauraa and scott, they recommend > to pass alignment as part of data based on > commit message for ca279cf1065fb689abea1dc7d8c11787729bb185 which adds > "data": > > "As I can't predict all the possible requirements/needs for all allocation > > uses cases, I add a "free" field 'void *data' to pass any needed > information to the allocation function. For example 'data' could be used > > to handle a structure where you store the alignment, the expected memory > bank, the requester device, or any information that could influence the > allocation algorithm." > > *v3: > changes: > title has been modified, original patch link: > http://patchwork.ozlabs.org/patch/500317/ > > according to the comments, add gen_pool_alloc_data, > modify gen_pool_alloc as a wrapper, define struct data_align > for gen_pool_first_fit_align algorithm. add parameter > pointer pool to algorithm. > > *v4: > changes: > v3 link: > http://patchwork.ozlabs.org/patch/500317/ > There are comments for v3, according to the comments, > modify the patch for v4. such as modifying annotations, > removing unnecessary chek, removing unnecessary cast and so on. > > include/linux/genalloc.h | 23 +++++++++++++++---- > lib/genalloc.c | 58 +++++++++++++++++++++++++++++++++++++++++++-- > --- > 2 files changed, 72 insertions(+), 9 deletions(-) > Looks good to me (except a minor change to the comments described below); send a non-RFC patch with the patches that use it. > @@ -500,15 +518,42 @@ EXPORT_SYMBOL(gen_pool_set_algo); > * @start: The bitnumber to start searching at > * @nr: The number of zeroed bits we're looking for > * @data: additional data - unused > + * @pool: unused, but the algorithm functions have same format. > */ Describe what pool actually is. Whether it's used is irrelevant (and you can assume the reader knows that all algorithm functions have the same signature). @data is different because it's defined per-algorithm and thus unused means no definition. In other words, the purpose of these headers is to be a guide to the caller of the function, describing the API, not the function internals. -Scott -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/