[ofw] Patch: Replace memory allocator with a memory allocator that works natively with 0 bytes allocations
Tzachi Dar
tzachid at mellanox.co.il
Mon Sep 20 04:25:13 PDT 2010
Here is a new and much smaller version of the patch that does not introduce new functions or new abstractions. It also only touches a very small number of places.
I hope this time it is OK.
Index: core/complib/kernel/cl_memory_osd.c
===================================================================
--- core/complib/kernel/cl_memory_osd.c (revision 2933)
+++ core/complib/kernel/cl_memory_osd.c (working copy)
@@ -38,6 +38,10 @@
IN const size_t size,
IN const boolean_t pageable )
{
+ CL_ASSERT(size != 0);
+ if (size ==0) {
+ return NULL;
+ }
if( pageable )
{
CL_ASSERT( KeGetCurrentIrql() < DISPATCH_LEVEL );
Index: hw/mthca/kernel/mt_memory.h
===================================================================
--- hw/mthca/kernel/mt_memory.h (revision 2933)
+++ hw/mthca/kernel/mt_memory.h (working copy)
@@ -50,6 +50,10 @@
{
void *ptr;
MT_ASSERT( KeGetCurrentIrql() <= DISPATCH_LEVEL );
+ MT_ASSERT(bsize);
+ if(bsize == 0) {
+ return NULL;
+ }
switch (gfp_mask) {
case GFP_ATOMIC:
ptr = ExAllocatePoolWithTag( NonPagedPool, bsize, MT_TAG_ATOMIC );
Thanks
Tzachi
> -----Original Message-----
> From: Hefty, Sean [mailto:sean.hefty at intel.com]
> Sent: Tuesday, August 31, 2010 7:31 PM
> To: Tzachi Dar; ofw at lists.openfabrics.org
> Subject: RE: [ofw] Patch: Replace memory allocator with a memory
> allocator that works natively with 0 bytes allocations
>
> There are several unrelated changes in this patch, and I personally
> still don't like the idea. First, it adds overhead that's not needed
> in most cases. Second, it uses a function name that looks like a
> Windows call, but isn't. Someone reading the code has to discover that
> the call is some macro. And in order to make this change, you already
> have to look at and touch everywhere that the size could be 0. Why not
> just fix those places already?
>
> There is already WAY too much abstraction in the code base. Adding
> more does not fix things, it only makes it worse. This can end up
> hiding bugs. Upper level code should not work around problems in other
> code, especially drivers.
More information about the ofw
mailing list