🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
2 messages
2 total messages Started by Loes Jansen Tue, 25 Jul 2006 16:40
kmalloc
#649
Author: Loes Jansen
Date: Tue, 25 Jul 2006 16:40
16 lines
1483 bytes
Hallo,

Ik heb hier verschillende drivers die kmalloc oproepen en ik zou graag
weten wat er gebeurt als de volgende flags worden mee gegeven:

1. kmalloc(size, SLAB_KERNEL)
2. kmalloc(size, GFP_KERNEL)

Is er een groot verschil tussen deze twee? En wat als er er niets wordt
mee gegeven:

3. kmalloc(size, 0)

-- 
groeten,
Loes
Re: kmalloc
#650
Author: Philip Paeps
Date: Tue, 25 Jul 2006 17:02
39 lines
2300 bytes
Loes Jansen <loes.jansen@student.kuleuven.be> wrote:
> Ik heb hier verschillende drivers die kmalloc oproepen en ik zou graag weten
> wat er gebeurt als de volgende flags worden mee gegeven:
>
> 1. kmalloc(size, SLAB_KERNEL)

Deze is hetzelfde als GFP_KERNEL maar gebruikt de slab allocator in plaats van
de normale allocator en zou dus enkel mogen gebruikt worden als je memory
pools aanmaakt (hoewel het eigenlijk niets uitmaakt omdat de slab allocator
intern toch gewoon GFP gebruikt).

> 2. kmalloc(size, GFP_KERNEL)

Dit is de meest gebruikelijke manier van werken.  De kernel alloceert memory
door __get_free_pages() te doen "in naam van" het proces dat in de kernel
terechtgekomen is.

> Is er een groot verschil tussen deze twee?

Nee.  Kijk even in <linux/slab.h> ;-)

> En wat als er er niets wordt mee gegeven:
>
> 3. kmalloc(size, 0)

Dan zondig je tegen de "No Magic Numbers" regel.  Als je 0 wil, gebruik de
constante die 0 betekent.  Je zult wel in de headers moeten graven om dat uit
te zoeken.  Veel eenvoudiger om even na te denken over wat voor policy je
nodig hebt en die expliciet te gebruiken. :-)

 - Philip

-- 
Philip Paeps                              Please don't email any replies
philip@paeps.cx                               I follow the newsgroup.

  hundred-and-one symptoms of being an internet addict:
  38. You wake up at 3 a.m. to go to the bathroom and stop and check your e-mail
      on the way back to bed.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads