2012-02-29 2 views
1

버퍼를 할당 한 사용자 공간이 있다고 가정하고 sendpage()를 사용하여 NIC를 통해 보내려합니다.리눅스 커널 sendpage 함수

sendpage는 zerocopy 작업을 지원합니다. 다음과 같은 상황이 발생합니다
이 1 get_page - 증가 참조 카운트
2. ACK를 NIC를 통해 페이지를 전송 및 수신
3. put_page

이 페이지가 실제로 sendpage 전에 해제 또는 resused 수있는 것이 가능인가요 완료됩니다.

(고려 TCP 프로토콜)

답변

1
당신과 같은 몇 가지 처리를 취할 필요가

:

페이지가 메모리에 고정 될 필요가 1) 사용자 : OS 환경에 따라 그것을 고정하기위한 다양한 방법이 있습니다, OS가

2) 핀 API를 제공 사용하지만 페이지> 0에 참조 횟수, 당신은 페이지

3) NFS 코드에 있는지 아무도 감소되지 심판이 카운트를 확인해야하는 경우 일어나지 않을 것입니다 무료 리눅스는 sendpage 메커니즘을 사용합니다. 당신의 참조를 확인하기에 좋은 곳.

환호, 포언!