Standard kernel memory allocation. The allocation may block in order to find enough available memory. Fine for most needs, except in interrupt handler context.
RAM allocated from code which is not allowed to block (interrupt handlers or critical sections). Never blocks, allows to access emegency pools, but can fail if no free memory is readily available.
Allocates memory in an area of the physical memory usable for DMA transfers.