Linux kernel yield() 활성화 하는 방법이 궁금합니다

저는 우분투에서 vmware로 윈도우를 사용하고 있습니다.

인터넷 익스플로러를 비롯, 몇몇 프로그램 때문에 아쉽지만 사용 중이지요.

그런데 vmware로 윈도우를 부팅할때마다 확인 메세지가 하나 뜹니다.

[quote:3petd8oa]
The host’s Linux kernel yield() functionality is disabled. Multiprocessor virtual machines exhibit degraded performance without yield(). Choose ‘OK’ to enable the sysctl ‘kernel.sched_compat_yield’ or ‘Cancel’ to continue without yield().
[/quote:3petd8oa]

이와 같은 메세지인데요, 영어를 잘 못하는 제가 대강 사전을 찾아봐 가며 해석해본 바로는

리눅스 커널에 yield()라는 기능이 있는데, 그 기능이 꺼져있다.

멀티 프로레서 가상머신에서 이 기능을 끄면 성능이 저하될 수 있다.

이 기능을 켤지 말지 선택하라… 대강 이정도로 읽혀집니다. (정확한 자신은 없습니다.;:wink:

물론 그 아래에는, 이 힌트를 다시 보지 않기 체크 버튼이 있습니다만

다시 보지 않기에 체크를 하면 물론 다음부터는 편하게 부팅이 되겠지만

혹 그러면 yield() 기능이 계속 꺼진채, 즉 성능이 저하된채 가상머신이 돌아가는게 아닐까, 그런 걱정이 듭니다.

그래서 포럼에 계시는 분들께 궁금증 해결과 도움을 요청드립니다.

yield() 기능이 어떤 기능인지도 궁금하구요,

왜 이 기능이 멀티 프로레서 가상 머신에 영향을 미치는지도 궁금합니다.

그리고 확실히 하기 위해 우분투에서(10.04 64bit 사용 중입니다.) 이 기능을 영구적으로 켜는 방법도 궁금합니다.

아, 저는 인텔 쿼드코어 cpu를 사용하고 있고, 가상머신에는 그중 두개의 코어를 할당하여 사용중입니다. ^^

(커널 관련 질문은, 하드웨어 게시판에 하는게 맞는지요. 설치나 부팅, 데스크탑, 멀티미디어 게시판은 아닌 것 같고…

아니면 안습입니다. 커널 관련 궁금글이 여기 올리는게 맞아야 할텐데 ㅠㅠㅠㅠㅠ)

저도 궁금하던거네요…

전 항상 예스를 누르고 있습니다 ㅠ

호환성을 위한 스케줄러 값이라는데 별반아는바는없고. 뱀웨어에는 그값이 필요한가봅니다.

/etc/rc.local에
echo "1">/proc/sys/kernel/sched_compat_yield
또는

/etc/sysctl.conf
kernel.sched_compat_yield=1
넣으시면 시작시 값이 바뀔겁니다.

cat /proc/sys/kernel/sched_compat_yield 하시면 설정된 값을 확인 하실 수 있겠죠.

리눅스 커널의 yield 함수는 현재의 프로세서를 다른 쓰레드에 양보하는 역할을 합니다.

만약 이 기능이 비활성화되어 있다면 시스템에 따라서 (약간의) 성능 저하가 있을 수도 있겠네요.