From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752601AbbIBCSc (ORCPT ); Tue, 1 Sep 2015 22:18:32 -0400 Received: from mail-bl2on0131.outbound.protection.outlook.com ([65.55.169.131]:48128 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751571AbbIBCSa (ORCPT ); Tue, 1 Sep 2015 22:18:30 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=scottwood@freescale.com; Message-ID: <1441160299.4966.122.camel@freescale.com> Subject: Re: [PATCH V7 1/3] genalloc:support memory-allocation with bytes-alignment to genalloc From: Scott Wood To: Zhao Qiang-B45475 CC: "linux-kernel@vger.kernel.org" , "linuxppc-dev@lists.ozlabs.org" , "lauraa@codeaurora.org" , Xie Xiaobo-R63061 , "benh@kernel.crashing.org" , Li Yang-Leo-R58472 , "paulus@samba.org" Date: Tue, 1 Sep 2015 21:18:19 -0500 In-Reply-To: References: <1441011520-15424-1-git-send-email-qiang.zhao@freescale.com> <1441153816.4966.109.camel@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: BLUPR16CA0003.namprd16.prod.outlook.com (25.164.14.13) To CY1PR03MB1487.namprd03.prod.outlook.com (25.163.17.17) X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1487;2:cU4UoT3/SQ519grZJw6yY9HGwQEHnhWzpNEHgSbEVKme7dZ/rq5C0V4xf+jtWd8Ht3IXIVXXXRrEeIqusX3Do/lvbhk/7jSjg8JMod6a1BifUewKUSzZg+odbqAXN/tpcotsep3WbA66LiZhEsuq6yKXdTlvC3NUuMmbWEFbmco=;3:7PXIbAY088Tvf0XdFdKa0KnoGg+VbVr4JoDIGVkJjZcFXbcd+sFAAyHrPNDkKepKfKwDUOFXkw3RHE7hPD1i/iCPn6IwW7LQQ9al2m7PZE6gmwafLT3b9aa7xYrs1vSACmoM1pzJizNcddIJeX41vA==;25:AV4d9yliF5sj6jSF6mrjiaIpmROZXkyIBgtsuk2KXWVZNMTrB6cJZtA7QKammGge5YHiQol5KqJzPmmuIW4tqIYEnMDQADdZ3ZhLBXHauecGLFR/1it3rep5by0OuF0bgrWZlAbQkkI5jOFd73WG3vnkgV3z4E9EGeexdLh7Cz/e0SPRXzMEO46QS3wEm6CvI2zFh+0+aCPgVaUIu8Y4qJzrmXie9J95h2WFrczEC52BFcIEgTjjBMS9kYCB15ST4279/D/UMoFLZ/gEySZYqQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1487; X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1487;20:SYjVswPgTczylDDyEHUGfMpIsCGogGVRdu8KjreWce0/VXUrjUjHMRFtSRqBdVacLDr95v7cX5tJ1HgkoNC+LC7FHHa+9d1itX7wWNvJLBMfFv4E0LzpTDl+QGa/x0FVjPEt8QxpX5GDpcEfv5V6qJ78+4tD1sb9tp/wRS4H+7lFHDDHsn2674bkUXDJ8ptk/d2IhfQoUJua7EYIRrBGS9UtPACTJFu7DdliGwUYnTugWwcTAxx7cbNAHyZmG6k26wlGCbfPV2XWRxnnzrEae6c8FMLSzLu4J0vo6Ihjjn4q4BlBpN0dfTuriJvABDwphBxpIH9MpcIyK/vhUZrN/Il4OQqUN+ThKR32wV5mJwQl3kBuBx4Cb/rlNPfegj1MHONFUxhkBYHad75I1WtUSDURfixGCnG+rBQC4zYJNNh0HGZJROg4DuR1nKJSbmaIbSn1be0RbE1PWMnFiCRhamMRIjJtqqeEUkDWU+d4NBqNobFXCifTQLEeZuX6ZbNW;4:qvDxblbgKQXdr/qr9RTbe9Q9t+MOfmicxrxHXPjHMyYA6sgNJ+MhMkMYMZbORD69S0XxwXghUdkPbAjmNISuRUTkg9UZ5icUUEnxqWW2QVFrCxdLILpj16tlrmKpq/IU1qM7qJuitYgO7iD/tXgebq4E8UBbCu6k6YLIZJn5WliX13OpA5WfOsMCtbrK0Whb5Xnvv4AhbC9bdTcuTEIMC3EuhMn8aq5TxjfeaRUjTk5QXlJKXGi14OVPQBY977aAzeWYFDku3osfagQfd6DYtHt1jOnYU/1bVDMWmZ3/i9eg0AqKzxu7dbQs3xtrIhNh X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(8121501046)(3002001);SRVR:CY1PR03MB1487;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1487; X-Forefront-PRVS: 0687389FB0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(199003)(377454003)(13464003)(189002)(377424004)(24454002)(19580395003)(86362001)(5001860100001)(110136002)(42186005)(50986999)(5001960100002)(5001830100001)(4001540100001)(101416001)(5001920100001)(36756003)(77156002)(97736004)(105586002)(5820100001)(23676002)(50466002)(76176999)(81156007)(19580405001)(62966003)(64706001)(2950100001)(50226001)(189998001)(77096005)(47776003)(103116003)(4001450100002)(92566002)(46102003)(5007970100001)(40100003)(106356001)(68736005)(122386002)(5004730100002)(33646002)(87976001)(99106002)(3826002)(5001840100002);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR03MB1487;H:[IPv6:2601:448:8100:f9f:12bf:48ff:fe84:c9a0];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAzTUIxNDg3OzIzOnhXVjJpeFIvem5mNFpabCtUZlZhMU9OcnFi?= =?utf-8?B?L29ReGdFUUM4dEc5SjYyckNjUndVUFBYRTdRUVZsRlRkQTZ0TlI0eXNpWlpB?= =?utf-8?B?OTdrZFRaNTJQUWJsdkJ3UDBORisyTmRTVnlOaUpyVVo0ek9hVjcrSmF2QnJ2?= =?utf-8?B?VC8zVFlIa1NyYlpzd0hWc1JVeVBWZ21WbE00ZkdrbGYvUEwzNkMxN1ptSUpo?= =?utf-8?B?QkpxNGdQcGVEMG1ZUUduUmsyaXJVTG1uVkRsNHUrOGN6VksvMXJDOVJIU2tD?= =?utf-8?B?MTFlclh4ZFU2NnZNSVB3bU9SQ2d1T1RvcnJTTk1laWd6UjlZT2l2NENFVTkz?= =?utf-8?B?Nnd0aU1lNC9wWWRmay9lbGJ4SmM3dzc0K1JvWGFJMDVsNUhLNnJCdGlqdVZU?= =?utf-8?B?S1B5L0FXVVJ2WURMait1ODRUdVVoaGlsUUxHb0tWNXUwYTdtc3JpcXdvT21J?= =?utf-8?B?VFRaMHA1Y0IxeVBvRlFXdjlSeENTZVNHaU0vQlYrQVNZcGFvZDdtUmtydnhC?= =?utf-8?B?ZExXTFBUREVVK2lEZVhwamhvanBFQlRRUTkzelEzUC9DT2psR3JFb2c0MnRu?= =?utf-8?B?ZjB4Q3dHZFdYVGVMZy9WeW5XNnp5Yi9LYVphM2l3MVcrT3lSZ1FIWk45cHhX?= =?utf-8?B?L3RUWHdjNmQrUHpGcnY4WWROUmV1QkxReW5Zejg3ZytOaWNSY3BUWTNlNmM3?= =?utf-8?B?OXIvY1VVMDBKSlIxNHkyWEtIdklCRzc2UnJMOU5kTmZIOUQvWWxvakh3SVFS?= =?utf-8?B?S0cyZkw3Uk5XV2Q1RCs3OHhCRTIyK0N6N2hxQm9PcXJTQjgxelIvSHU2YVpr?= =?utf-8?B?UTV3RnVaREI2eG1GVm0vNElZMUh3cXp3d25VT3lYcnlpRVhSM2Zlc0dVSEhn?= =?utf-8?B?VlRrWC95cU9LVVlaV1FZVGxHS21jRy83ZCtXRElBRXNBcGlSYXB1L09MMnFG?= =?utf-8?B?MDU2TmtMUDFrUFlPYXliNVJ4VVd3clRidFZEaHFBNyt6ME1KSTdVNmNKa091?= =?utf-8?B?a3pHQlNkdTUyNGRncTFTWWZGVURhaTFtNXdGM3lIcHQxMU02a0JiNm9sWDg0?= =?utf-8?B?Q25FTWRKUURaUDl3d243NTNzeEZlTzdtVDFMek00UVpCTnN4YkVVaTZIVmFB?= =?utf-8?B?elhBNndNeTd3VVRxN0ZEY2FoaWlrSktKNjRXSFQ2aG8rUkptRnFQcnJFV0oy?= =?utf-8?B?Mnpabm50Tld4cUlvMmtQWXAvQ3B5aXJpQ2dJWDhQWFUvcHVhVU50dWJtdXFJ?= =?utf-8?B?UDhNUVBOL0dzckMzRzVuRjd0blkxWTZ5OUxKcXF2T3pZTnhkUysyaTh5WUlm?= =?utf-8?B?eFVveTU0d1FVNVhPRVN2YUc2VS92MG1rNjhYeSt3eTNqWS9JaUhjUGo4K1BG?= =?utf-8?B?L0lsajFteXd3dGxHSHpZK1NHN2RqNkZKU2lnMEhSMFBPc1RlVFlkZUxWb3V6?= =?utf-8?B?d1FqZEFIMjVnYjllb3hpRFVyOEtrajFSSWNrY1JTZHZPMzdUcmVtTUkzT2tP?= =?utf-8?B?cUNPSFlBREd1Ymh6LzJ1ZS80ZDRIdlBaNGZ2ZE5mVHVtR0JiZS9ZN1FhNDNS?= =?utf-8?B?ZFBpc0RwclNpZ3p4NVFJOEdqMTFsaHZvTHFpUXFEd3BzRXdMSVp2SXRCamcz?= =?utf-8?B?YnE0S0d6bnl1Mkc2RWNlU3ZpRTlYLzhoUS8wUjFZMVl3cHJHay9MV0hlRXNw?= =?utf-8?B?SzVubm1VQjJQTWV5MjJYdTRyQ21LbFdkUm9TR2E3QlROSzVOU3dxcUFlWnIx?= =?utf-8?B?Ni9JaHZFK0NlQkE0S2hjT01uZVdBcko1KzI4UlhSV0YzVUJXSkpFWmJmRHds?= =?utf-8?B?U0wvVmRlZnZ0cExzSG90d1RqRWdwWWNIVmt0c1AwS3NDekE9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1487;5:Gq9AUMUhRu98c4MHcmIHlrjHHf2yrLTfQBU+CZ6d1DZpkKHNqm4moXKdtw/S9CBceVZmtvVt5Z46r+IskP/nUPr0UPONhmLdVF5Ji0nb+a7Rr9pN/456X4fqEh32tWLl4BY9tb61F59nhgmcKrxUZw==;24:q9zjDxEecmuGUS+CoOzBfe4H5rtLa8a+msjopu815U6jI4b+1t1jk1kJ3f8xcS2oVoNhVXqxD1wyuDCAagCObuGZt2JYYLQyJyxCw/n2DHg=;20:HZvbWluLU7tUrUsnYjcVMIq5c0gDmU1Lgj+DJPcNn9IS4uBZRG5dbgVoTSyvL7nhORxCwMH/6tBE4MjQ0BmT5w== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2015 02:18:27.0290 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB1487 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2015-09-01 at 21:10 -0500, Zhao Qiang-B45475 wrote: > On Wed, 2015-09-02 at 08:38AM +0800, Wood Scott-B07421 wrote: > > -----Original Message----- > > From: Wood Scott-B07421 > > Sent: Wednesday, September 02, 2015 8:30 AM > > To: Zhao Qiang-B45475 > > Cc: linux-kernel@vger.kernel.org; linuxppc-dev@lists.ozlabs.org; > > lauraa@codeaurora.org; Xie Xiaobo-R63061; benh@kernel.crashing.org; Li > > Yang-Leo-R58472; paulus@samba.org > > Subject: Re: [PATCH V7 1/3] genalloc:support memory-allocation with > > bytes-alignment to genalloc > > > > On Mon, 2015-08-31 at 16:58 +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 > > > --- > > > Changes for v6: > > > - patches set v6 include a new patch because of using > > > - genalloc to manage QE MURAM, patch 0001 is the new > > > - patch, adding bytes alignment for allocation for use. > > > Changes for v7: > > > - cpm muram also need to use genalloc to manage, it has > > > a function to reserve a specific region of muram, > > > add offset to genpool_data for start addr to be allocated. > > > > This seems to be describing more than just the changes in this patch. > > What does also handling cpm have to do with this patch? Are you adding > > support for reserving a specific region in this patch? I don't see it, > > and in any case it should go in a different patch. > > Yes, I added. The code below can support the function. > offset_bit = (alignment->offset + (1UL << order) - 1) >> order; > return bitmap_find_next_zero_area(map, size, start + offset_bit, nr, > align_mask); > > CPM has an function cpm_muram_alloc_fixed, needing to allocate muram from a > Specific offset. So I add the code and add offset to struct data. I thought the offset was related to the previous discussion of checking for allocation failure. Are you using it to implement alloc_fixed()? If so, please don't. Besides the awkward implementation (what does it logically have to do with gen_pool_first_fit_align?), it does not appear to be correct - - what happens with multiple chunks? What happens if part of the region the caller is trying to reserve is already taken? Implement a proper function to reserve a fixed genalloc region. > This patch is the first patch of this patch set, so I explain what changes > about > Set v7 and why I add support for reserving a specific region in this patch. If you want to provide commentary that covers the entire patchset, use a cover letter. > > > +/* > > > + * gen_pool data descriptor for gen_pool_first_fit_align. > > > + */ > > > +struct genpool_data_align { > > > + int align; /* alignment by bytes for starting > > address */ > > > + unsigned long offset; /* the offset of allocation start addr*/ > > > +}; > > > > The offset belongs on the caller side, not here. > > So, how do I pass offset to gen_pool_alloc_data or pool->algo? You don't. -Scott