From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753846AbbIXXaT (ORCPT ); Thu, 24 Sep 2015 19:30:19 -0400 Received: from mail-by2on0115.outbound.protection.outlook.com ([207.46.100.115]:33760 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753043AbbIXXaR (ORCPT ); Thu, 24 Sep 2015 19:30:17 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=scottwood@freescale.com; Message-ID: <1443137406.32298.74.camel@freescale.com> Subject: Re: [PATCH v10 3/5] CPM/QE: use genalloc to manage CPM/QE muram 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: Thu, 24 Sep 2015 18:30:06 -0500 In-Reply-To: References: <1442560521-19354-1-git-send-email-qiang.zhao@freescale.com> <1442560521-19354-3-git-send-email-qiang.zhao@freescale.com> <20150921224720.GA12709@home.buserror.net> <1442967567.19102.318.camel@freescale.com> <1442980978.19102.321.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:f869:e7a:18c6:95cb] X-ClientProxiedBy: CY1PR12CA0023.namprd12.prod.outlook.com (25.160.137.33) To CY1PR03MB1488.namprd03.prod.outlook.com (25.163.17.18) X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1488;2:ZOiFVYq45OOEyTU+FIVDrvlNFGm+WV7jgfAN1MErZVAyXvM7l8fiDOD74votWyVK0PZQGTQqsKVLJboYmSnGwC0qO91VJmyVqcAFhWxZfIj/h8MHZ36WPuBacIEr55NaXgwRimxjK4emJiOHO6YhE8tFMrGoTsZ7zs8OV0X6/bM=;3:w1/cifsdGZcJqzlPDBNbd6W7Aa+yifp6hJ95+rSJUtu17At8/evba1HDlfJJYyUfPHDY2/U8FTv98Cd9/HceOyQ9XqEM1hyTLPUS1mGT3/cxZxkO+D7wLnctQRGCjstF1Oad78gsPIcuuTFHvWh9Zw==;25:7bfsZwMsLODqyKrlObljYq3NaUtKiv3+5Cb0OwWbGBDPQqz+J2pGuIy74qT8CmBPOzRrZ292hUFT7EKV1DXblpIngJ7ArDFVkaKg4hjeJ7KWYv8g4YRbhO7UnRv8sW+PIHPT8IVhsGjO4zirk1aYcTwnE5D6AuRrFqwm6yGxdnSQdEIlNOZE4FN5H3kDr8pgp/IXoaoJuKi1lqb1wWSzWw2QxbjUwS2vC+2WkJRe32nTnihrjK2Ff5Ofyt1M6uwSA/TlLjcD1GCIffEN3WTEyQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1488; X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1488;20:f78Ze0/jpTAqOjAvsTKhxIFBmgJpI+pKPbFHA0qwlnchyz6VR8gsoT8ncMMBtFC2Qq4ZuuFrr96Td0VyYj2U1w+JTGUx+uU2R8Bzbur+snqDTfNVUQhCCB2k5YXSh9RbOslH3lJGKB0+YqKYAeRDBaFMLUHksfVxM8DyCRfZLM5p99Mh+bQmoIKP+Obh/s4jDNHrJ4mGnGkAriTabgaL0eszUf9pXVJxt8EZop3iIc5vMtObvPIYoKdEwQrfZHCSUNCH/9mL4MnkdZThYm5MBduG2LelDGHGxDJdyd6IJP1XAAEHtyo9jA4FA/zP1YUk3vpHY6gIYAa0GMunERr6+uMzN5HNhVX85qfaB+7duGhU5n0qgcEyQF/4IJkDxNInXdTTc7KJsBQsVMOcu0DnVplgVyJ3sclf6tgVToNooGoJi6LIiA/fUYjUPM7XOUWYwuExZ+WNP/O0NzFFjwWWYcmT7grso5NtaqOFUI3t4XA3a/iItEi4mm+xEVKbb9uT;4:+wJAzAVFDM2+uYyE9Rk+14DzSzrsBS/Qyu4swM17QTpLMkyEpKonCQt8kKVyaaOYb4GgRXWpdBxFyBz2NQshABE0msNE4Rvx7/2qprXp+PeY/hq9A0veU7rvbEkCsHuTlY5jPmmPKtvEtNSbVNb0ryLnQ5rnHERzLhqej/FsKU2tdFRTSEzjSyznfcWIYweJWkJ21R5Sy2wGavcIg+eT2meGXZJmvv5qhsQ02iGd8VMJigV3P9ZE2/iXIni9PwMF702yHxgO7vg5/lzytgYVt8XzTp20iI/iZPccLlONw6HAiMhB4aH7r46rgR4IzltD8vBIPQeIqME1qKbEVcgJ/2jQqZ/WjQQA59bwVreavx8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(3002001);SRVR:CY1PR03MB1488;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1488; X-Forefront-PRVS: 070912876F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(377454003)(24454002)(13464003)(377424004)(199003)(189002)(92566002)(50466002)(5820100001)(122386002)(40100003)(2950100001)(68736005)(62966003)(77096005)(50226001)(5004730100002)(86362001)(5007970100001)(77156002)(110136002)(64706001)(33646002)(42186005)(87976001)(76176999)(50986999)(47776003)(97736004)(4001450100002)(46102003)(103116003)(5001960100002)(5001860100001)(189998001)(105586002)(81156007)(5001830100001)(93886004)(101416001)(19580405001)(4001540100001)(23676002)(36756003)(19580395003)(106356001)(99106002)(3826002)(5001840100002);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR03MB1488;H:[IPv6:2601:448:8100:f9f:f869:e7a:18c6:95cb];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAzTUIxNDg4OzIzOkt1Vmc4SEQ1UHU2WEFIb3U4RWpKdjF4NCtM?= =?utf-8?B?dlhUbVpTRHVYRE85MXcyR0dGR2Y1QVFJN1VJejQxdU1nTHFEc2ttT1hzdXlr?= =?utf-8?B?TWpTNUlFQzRBTkV4NXVYK2tKZ1lrVW92dTlIbUpva3FDOVJCdWV3SGFRWnJx?= =?utf-8?B?M0txalJYZWcvREcrZTJKdTRNWHFlVCtBRGI1RXQ4N3JoUC9uTmx4SnZBNFdN?= =?utf-8?B?V0l2OWFOdjFKbkxtSzREMEV4NFJCcFhkMmRZbVAzYWYxWW5xMWJTSXJYTVhI?= =?utf-8?B?ZU9TV3dVVkt3cklSMCtNb3l5emIzWUVCZ090REpLZ2swdHR2d1JIN1JEZkg3?= =?utf-8?B?clNRN25JcGsrTXB0MHQycTM1U3JuN25XclFJMGtxVE44ZkVSbmlNUTdQbWxJ?= =?utf-8?B?Z2RWZVJZT0JuWEhrdDkwOWUzUlhLRnVlanhseVFNaGZUbUJTMkgzeEw3VWRX?= =?utf-8?B?TmpZTGFFN3FjK0lwT3NPSkJVRGJCQ3BXbVBINFpXMExrcmNnK0xUWGw0RTlj?= =?utf-8?B?OUgrRGJOc282ZkNUMlY1b0JhODZRS0FWdUJLNWFJRTkyQTRNaGJHakZaTm14?= =?utf-8?B?bGNEbk1pY1FUU2R0V1JlUmFvV1QvMUNBYWlNSjRlUFZOT3JrU1NBZHdkTG9u?= =?utf-8?B?amlxcDdsK3lteEQ0RURwNlNYM0Z1TkE4b005SmJtRzZ6bCs2WFpjT25STmht?= =?utf-8?B?WGs4dDZRbjF5M2dSSDRmZ3F4Snk4MHgvNFByRzR4SzdKcXBzTXJQcWZWK2hB?= =?utf-8?B?ZGoxOW51aTJkVWdUejUvR21kcCtOZHNRSzRnSzhzZERBeFFiRWZIM3QrMHh4?= =?utf-8?B?TVo3cElJTWQwbU5WNUpVN0FkYU0zaWwxZVZvOFhFMXRPZU1RZDFQcjgyOHJM?= =?utf-8?B?L0ZRWDFwQnAvaGRvcERCYlBOYkxPN25CNVJuWTFRMENadlJic3JYUTFxOXFG?= =?utf-8?B?T1EwN3VqdGc5MnhqRkUzOEttbVpWYlVybmVBQnVMdDJKVHVTRWZNNVJrRCtB?= =?utf-8?B?NEJkZWxQampVa0pWS1BGdE5ieFVjK0hXQ0MyaTNMdmRBclJlTEJXTE1VSW1N?= =?utf-8?B?Z3NqKy9LM3ptVjAwcUNSRWJKRmJxZ1hTNXo1ZE5MY0lBTmVyaGhuaThwRkVL?= =?utf-8?B?ekYzcHhtU3h5SnROTGJRcjFqUXNmSzViNVNyQWNiZE04U0FIbVo2RGJocjZ3?= =?utf-8?B?VGRsQmE4dE56VWQ5ZG5xZU5CUHRPNnh6aWUwUEhDN0IrUldWZmdaMTlJNXdU?= =?utf-8?B?NWkzeFduMXRhQ1R4SnNZcGM3NHlLREMyeWIvdkx3aW5aL3Y5RktSNjZENjFl?= =?utf-8?B?UWRtMm1rK0NlcE9oaW1YWE1wTVF4Q0lsYkwrek1iM3VvQUxPZS9Pb2lQK0hQ?= =?utf-8?B?aDZma0tvTm95T212V0dpSFhVYzVyVWpYN2dLSFk0VlZuaWQzTkVwcnIxem1j?= =?utf-8?B?cXovdHQ1THBNSEtqRjRaSGZFM0E5dUw0VVNrbmNxZ0lDOU5RcG5aQTIwT2NU?= =?utf-8?B?SDFQVldJZ1BYRFZkWitwM3R1T21kZ2RWekZOSWxTeU5menFsT3pjYmYvTFg2?= =?utf-8?B?eTJWQk55M3RiYTZvakhUcHdNTE9CcGxRSXA4bm43RGl4aGVIc1hPeG9IdS8r?= =?utf-8?B?eE1mOTVZWnlQNVlZcUlHeGwydjBEaXQ1T2hrTktWVHJjMVZwVUJzWGgzend5?= =?utf-8?B?QVVzMkljOVBRWmxmd2dWYlU5YU9SZG5yaXlYc1ZZQ0pla2h6Vi9sQTRqbkxE?= =?utf-8?B?amE3anBQTzJrQ0ovY0w3SEVPaWlhcmVGY2JqZ00yaDFGbFpWTU5pcnBaRFlG?= =?utf-8?Q?KThwpiMmtPP61?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1488;5:o0LC/VBhqbhGG0ThSC3drTGtgv6OhusHq/ChbZWREglG+7whwvwVyqbVpXScw8CBOXSP7K4U2rJoutm7LRqusze9imedNm96qvMaWTr+xFpjDk01ncyPIWm0x3Mei1hZfU8DfBuuXawu635Da/kAcA==;24:a7QTUgc5GVepjUy+hAGh7aiK3u0E1zChLuNpyUUEPdYvaGW6vLyMgtqpdZjyaOB0IFqJo+TVLtWIRLXRnXMq+AUyIUzFapaJoMrB4QZ0GYo=;20:97Qni0zM9RK0BEq8XbE1rqqFVi18+HG/P7C10ixa791nhsEyzbWhv/uTsok6cMwQ6Q0QMSUmYrUbGaNQ2SyKnA== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Sep 2015 23:30:14.5640 (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 On Wed, 2015-09-23 at 00:28 -0500, Zhao Qiang-B45475 wrote: > On Wen, Sep 23, 2015 at 12:03 AM +0800, Wood Scott-B07421 wrote: > > > -----Original Message----- > > From: Wood Scott-B07421 > > Sent: Wednesday, September 23, 2015 12:03 PM > > 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 v10 3/5] CPM/QE: use genalloc to manage CPM/QE muram > > > > On Tue, 2015-09-22 at 21:20 -0500, Zhao Qiang-B45475 wrote: > > > On Wen, Sep 23, 2015 at 8:19 AM +0800, Wood Scott-B07421 wrote: > > > > > > > > > > { > > > > > > > - int ret; > > > > > > > + > > > > > > > + unsigned long start; > > > > > > > unsigned long flags; > > > > > > > + unsigned long size_alloc = size; struct muram_block *entry; > > > > > > > + int end_bit; int order = muram_pool->min_alloc_order; > > > > > > > > > > > > > > spin_lock_irqsave(&cpm_muram_lock, flags); > > > > > > > - ret = rh_free(&cpm_muram_info, offset); > > > > > > > + end_bit = (offset >> order) + ((size + (1UL << order) - 1) > > > > > > > + >> > > > > > > order); > > > > > > > + if ((offset + size) > (end_bit << order)) > > > > > > > + size_alloc = size + (1UL << order); > > > > > > > > > > > > Why do you need to do all these calculations here? > > > > > > > > > > So do it in gen_pool_fixed_alloc? > > > > > > > > Could you explain why they're needed at all? > > > > > > Why it does the calculations? > > > If the min block of gen_pool is 8 bytes, and I want to allocate a > > > Region with offset=7, size=8bytes, I actually need block 0 and block > > > 1, And the allocation will give me block 0. > > > > How can you have offset 7 if the minimum order is 2 bytes? > > Offset has no relationship with minimum order, it is not decided by minimum > order. All allocations begin and end on a multiple of the minimum order. > I want to allocate a specific region with offset=7, then algo to calculate > the block bit. > And I just take it for example, it is not I really need to region offset=7. Do you really need any fixed allocations that begin on an odd address? > So, now minimum order is 2 bytes. If offset=7, size=4bytes needed, it > actually allocate 6-12 to me. Why 6-12 and not 6-10? -Scott