Multi-threaded Network Stack Lock Strategy, Solaris 10 & DragonFly BSD

多 CPU 的情況下, CPU 間同步的 overhead 很大,所以要讓相關的處理盡量留在同一棵 CPU 上,Solaris 採取的策略是一個稱為 squeue 的結構,一個 CPU 實體化一個 squeue, 從收到 network packet 開始,network driver -> IP Classfier > IP layer -> TCP Layer 都是對這個 squeue 做處理,從頭到尾只 lock 一次,並且把相關的 work thread 都 bind 在這棵 CPU 上. 參考 Solaris Networking – The Magic Revealed (Part I)

DragonFly BSD 最近也在 lock 方面做了類似的修改 [1][2],CPU locality 的部份沒提到

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s