Введение в MM

Было бы радостно иметь введение в подсистему mm. Хотя бы базовые элементы, например:
*) виртуальное адресное пространство (на 32 и 64 битах)
*) представления Linux о физической памяти (дескрипторы станиц)
*) 1ое и 2ое вместе :), т.е. page tables, mm_struct, vma_area...
** mmap в адресное пространсво процесса

Если кто возьмется, было бы очень круто ;)

Вышел Linux 2.6.37-rc4

29 ноября вышел релиз кандидат 4 для ядра версии 2.6.37
Заметные изменения коснулись архитектуры Tile (многопроцессорная MIPS-like VLIW архитектура от фримы Tilera) и драйвера SiS framebuffer console.
Была исправлена регрессия NFS readdir.

Анонс на LKML: https://lkml.org/lkml/2010/11/30/5

Сетвой стек в Linux: введение (SKBs)

Сетевой стек Linux в настоящее время является рабочей лошадкой современной сети Internet (и не только её). Действительно, его возможности в настоящее время очень широкие. Достаточно посмотреть в директорию net ядра:

denis@denis-desktop:~/syssrc/linux-2.6/net$ ls
802        can           econet      key        netrom   sctp          wireless
8021q      ceph          ethernet    l2tp       nonet.c  socket.c      x25

strace shows wrong system call

Всем привет

Хочу закрыть этот баг, но не могу разобраться в чем дело.
https://bugzilla.novell.com/show_bug.cgi?id=352419

Дело в том, что на 32bit машинах вторым системным вызовом идет fork(), а на 64bit - sys_open().

Однако этот код запускает fork() на обеих платформах:

 #include <stdio.h>
 #include <unistd.h>
 
 int main ()
 {
     printf("--------------------\n");
     __asm__("movl $2, %eax; int $0x80");

Вышел Linux 2.6.37-rc3

21 ноября вышел rc версии 2.6.37 под номером 3.
Изменений не особо много, около 75% относится к драйверам устройств, остальное к коду DRM.

HEAD сейчас стал такой (на Wed Nov 24 18:13:34 MSK 2010):
commit ea49b1669b7b405e0eb0bf877c7b7fb01f8dd19b
Merge: a4ec046 9e8c32c
Author: Linus Torvalds
Date: Wed Nov 24 08:23:56 2010 +0900

Анонс на LKML: http://lkml.org/lkml/2010/11/21/153

@в текущем HEAD'e

Вышел Ethtool 2.6.36

Практически сразу после попадания в новые руки вышел Ethtool 2.6.36
Что нового:
* Fix: RX n-tuple masks and documentation
* Feature: Ethernet-level RX n-tuple filtering and 'clear' action
* Feature: stmmac register dump support
* Feature: get permanent address (-P) option
* Feature: VLAN acceleration control
К тому же решено больше не использовать sourceforge.net для хостинга проекта,
скорее всего это будет kernel.org.

Будущее Ethtool

Jeff Garzik - Linux kernel hacker (SATA и networking) и текущий мантейнер пакета Ethtool, попросил недавно (http://www.spinics.net/lists/netdev/msg146731.html)
принять эстафету в поддержании этой утилиты. Jeff написал что больше не может мантейнить ethtool из-за проблем со здоровьем.
Поддержкой теперь займется Ben Hutchings.

Драйвер для Marvell Libertas 802.11b/g Wireless PCI

Всем доброго времени.
Есть WiFi чип который не поддерживается текущим ядром. Что о нём известно:

01:0f.0 Ethernet controller: Marvell Technology Group Ltd. 88W8335 [Libertas] 802.11b/g Wireless (rev 43)
Subsystem: ASUSTeK Computer Inc. Device 8187
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR-

random networking stuff #1

> + /* IP header Alignment (14 byte Ethernet header) */
> + skb_reserve(skb, 2);

Use "NET_IP_ALIGN", not "2", different architectures want to
use different values.

> + skb_reserve(merge_skb, 2);

Same thing here, use NET_IP_ALIGN.

> +/* arcvmac private data structures */
> +struct vmac_buffer_desc {
> + unsigned int info;
> + dma_addr_t data;
> +};

If this is the actual descriptor used by the hardware you
cannot define it this way.

dma_addr_t is a variable type, on some platforms it is a

Текущее состояние процесса удаления большой блокировки ядра (BKL) из различных подсистем Linux

Arnd Bergmann опубликовал отчет о процессе удаления из ядра Linux большой блокировки ядра (Big Kernel Lock или Giant Kernel Lock).
BKL - глобальная блокировка, которая была создана в то время, когда в Linux добавлялась поддержка SMP. Представляет собой глобальный spin_lock:
static __cacheline_aligned_in_smp DEFINE_RAW_SPINLOCK(kernel_flag);

RSS-материал