On 24/02/18 02:26, J Freyensee wrote:
[...]
On 2/23/18 6:48 AM, Igor Stoppa wrote:
well, this is embarrassing ... yes I had this prototype code, because I+- Before destroying a pool, all the memory allocated from it must beIs that true? pmalloc_destroy_pool() has:
+ released.
.
.
+ÂÂÂ pmalloc_pool_set_protection(pool, false);
+ÂÂÂ gen_pool_for_each_chunk(pool, pmalloc_chunk_free, NULL);
+ÂÂÂ gen_pool_destroy(pool);
+ÂÂÂ kfree(data);
which to me looks like is the opposite, the data (ie, "memory") is being
released first, then the pool is destroyed.
was wondering if it wouldn't make more sense to tear down the pool as
fast as possible. It slipped in, apparently.
I'm actually tempted to leave it in and fix the comment.
[...]
How common are multi-threaded allocations of write-once memory?+What is the recommendation to using locks then, as the computing
+- pmalloc does not provide locking support with respect to allocating vs
+ protecting an individual pool, for performance reasons.
real-world mainly operates in multi-threaded/process world?
Here we are talking exclusively about the part of the memory life-cycle
where it is allocated (from pmalloc).
Maybe showAn example of how to use a mutex to access a shared resource? :-O
an example of an issue that occur if locks aren't used and give a coding
example.
This part below, under your question, was supposed to be the answer :-(
+ It is recommended not to share the same pool between unrelated functions.
+ Should sharing be a necessity, the user of the shared pool is expected
+ to implement locking for that pool.
[...]
Because, as written, on 32 bit system the vmalloc range is relatively+- pmalloc uses genalloc to optimize the use of the space it allocatesWhy is 32-bit systems mentioned and not 64-bit?
+ through vmalloc. Some more TLB entries will be used, however less than
+ in the case of using vmalloc directly. The exact number depends on the
+ size of each allocation request and possible slack.
+
+- Considering that not much data is supposed to be dynamically allocated
+ and then marked as read-only, it shouldn't be an issue that the address
+ range for pmalloc is limited, on 32-bit systems.
small, so one might wonder if there are enough addresses.
 Is there a problem with 64-bit here?Quite the opposite.
I thought it was clear, but obviously it isn't, I'll reword this.
-igor