Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Alma Tarafı Ölçeklendirme, çok işlemcili sistemlerde ağ verilerinin işlenmesiyle ilgili sistem performansını geliştirir. NDIS 6.80 ve üzeri, kuyrukların dinamik, VPort başına yayılmasını sunarak RSS'yi genişleten RSS Sürüm 2'yi (RSSv2) destekler.
Genel bakış
RSSv1 ile karşılaştırıldığında RSSv2, CPU yükü ölçümü ile dolaylı tabloyu güncelleştirme arasındaki süreyi kısaltır ve yüksek trafikli durumlarda yavaşlamadan kaçınır. Bunu başarmak için RSSv2, isteği işleme işlemci bağlamında IRQL = DISPATCH_LEVEL'de eylemlerini gerçekleştirir ve yalnızca geçerli işlemciyi işaret eden dolaylı tablo girdilerinin bir alt kümesinde çalışır. Bu, RSSv2'nin alma kuyruklarını rssv1'den çok daha hızlı yanıt veren birden çok işlemciye dinamik olarak yayabileceği anlamına gelir.
rssv2'de sırasıyla uygun RSS özelliklerini ayarlamak ve dolaylı tabloyu denetlemek için miniport sürücüleri için OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 ve OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIESolmak üzere iki OID kullanıma sunulmuştur. OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 düzenli bir OID olmasına rağmen, OID_GEN_RSS_SET_INDIRECTION_ENTRIES NDIS_STATUS_PENDING döndüremeyen eşzamanlı bir OID'dir. Bu OID'ler hakkında daha fazla bilgi için tek tek başvuru sayfalarına bakın. Eşzamanlı OID'ler hakkında daha fazla bilgi için bkz. NDIS 6.80'dekiEşzamanlı OID istek arabirimi.
RSSv2 terminolojisi
Bu makalede aşağıdaki terimler kullanılır:
| Terim | Tanım |
|---|---|
| RSSv1 | İlk nesil alıcı taraf ölçeklendirme mekanizması. OID_GEN_RECEIVE_SCALE_PARAMETERS kullanır. |
| RSSv2 | İkinci nesil, bu makalede açıklanan Windows 10, sürüm 1803 ve sonraki sürümlerde desteklenen yan ölçeklendirme mekanizmasını alır. |
| Varlık ölçeklendirme | Yerel RSS modunda miniport bağdaştırıcısının kendisi veya RSSv2 modunda bir VPort. |
| ITE | Belirli bir ölçeklendirme varlığının dolaylı tablo girişi (ITE). VPort başına toplam ITE sayısı, VMQ modunda NumberOfIndirectionTableEntriesPerNonDefaultPFVPort veya NumberOfIndirectionTableEntriesForDefaultVPort veya Yerel RSS durumunda 128'i aşamaz. NumberOfIndirectionTableEntriesPerNonDefaultPFVPort ve NumberOfIndirectionTableEntriesForDefaultVPort, NDIS_NIC_SWITCH_CAPABILITIES yapısının üyelerindendir. |
| Ölçeklendirme modu | VPort başına uygulanan vmswitch ilkesi, çalışma zamanında ITE'lerin nasıl ele alınacağını belirler. Bu, statik (yük değişiklikleri nedeniyle ITE hareketi yok) veya dinamik (mevcut trafik yüküne göre genişleme ve birleşme) olabilir. |
| Sıra | Bir ITE'yi destekleyen temel bir donanım nesnesi (kuyruk). Donanıma ve dolaylı tabloya bağlı olarak, yapılandırma kuyruğu birden çok ITE'yi destekleyebilir. Varsayılan kuyruk tarafından kullanılan kuyruklar da dahil olmak üzere toplam kuyruk sayısı, genellikle yönetici tarafından ayarlanan önceden yapılandırılmış sınırı aşamaz. |
| Varsayılan işlemci | Hash değeri hesaplanamayan paketleri alan bir işlemci. Her VPort'un varsayılan işlemcisi vardır. |
| Birincil işlemci | VPort oluşturma sırasında NDIS_NIC_SWITCH_VPORT_PARAMETERS yapısının ProcessorAffinity üyesi olarak belirtilen bir işlemci. Bu işlemci çalışma zamanında güncelleştirilebilir ve VMQ trafiğinin nereye yönlendirilebileceğini belirtir. |
| Kaynak CPU | ITE'nin şu anda eşlendiği işlemci. |
| Hedef CPU | ITE'nin RSSv2 kullanılarak yeniden eşlendiği işlemci. |
| Aktör CPU'su | RSSv2 isteklerinin yapıldığı işlemci. |
Miniport sürücüsünde RSSv2 özelliğini tanıtma
Miniport sürücüleri, RSSv2 desteğini, CapabilitiesFlags üyesi olan NDIS_RECEIVE_SCALE_CAPABILITIES yapısını NDIS_RSS_CAPS_SUPPORTS_INDEPENDENT_ENTRY_MOVE bayrağı ile ayarlayarak gösterir. Bu özellik, RSSv2'nin CPU yük dengeleme özelliğini ve varsayılan olmayan VPort'lar (VMQ'lar) için RSSv1 dinamik dengelemeyi etkinleştiren NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED bayrağını etkinleştirmek için gereklidir.
Not
Üst katman protokolleri, varsayılan VPort'un birincil işlemcisinin RSSv2 miniport sürücüleri için taşınabileceğini varsayar.
Bir miniport bağdaştırıcısı RSSv2 özelliğini tanıtmıyorsa, bu VPort'ların dinamik yayma gerçekleştirmesi istense bile tüm VMQ özellikli VPort'lar statik yayma modunda kalır. OID_GEN_RECEIVE_SCALE_PARAMETERSRSS parametrelerinin yapılandırması için RSSv1 OID, statik yayma modunda olan bu VPort'lar için kullanılır.
Miniport sürücülerinin tek bir RSS denetim mekanizması (RSSv1 veya RSSv2) uygulaması yeterlidir. Sürücü RSSv2 desteğini tanıtıyorsa, NDIS, VPort başına yayılmayı yapılandırmak için gerekirse RSSv1 OID'lerini RSSv2 OID'lere dönüştürür. Miniport sürücüsünün iki yeni OID'yi desteklemesi ve RSSv1 OID_GEN_RECEIVE_SCALE_PARAMETERS OID'nin davranışını aşağıdaki gibi değiştirmesi gerekir:
- OID_GEN_RECEIVE_SCALE_PARAMETERS yalnızca RSSv2'deki Sorgu istekleri için kullanılır, RSS parametrelerini ayarlamak için kullanılmaz.
- OID_GEN_RECEIVE_SCALE_PARAMETERS_V2, bir Sorgu ve Ayar OID'si olup; ölçeklendirme biriminin kuyruk sayısı, ITE sayısı, RSS etkinleştirme/devre dışı bırakma ve karma anahtar güncellemeleri gibi parametrelerini yapılandırmak için kullanılır.
- OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES, dolaylı tablo girişlerinde modifikasyon yapmak için kullanılan bir Yöntem OID'dir.
RSSv2 OID'leri işleme
OID_GEN_RECEIVE_SCALE_PARAMETERS yalnızca belirli bir ölçeklendirme varlığının geçerli RSS parametrelerini sorgulamak için kullanılır. RSSv1'de bu OID, parametreleri ayarlamak için kullanılır. RSSv2 özellikli miniport sürücüleri için NDIS, sürücü için bu rol dönüştürmeyi otomatik olarak gerçekleştirir ve bunun yerine parametreleri ayarlamak için aşağıdaki iki OID'yi oluşturur.
OID_GEN_RECEIVE_SCALE_PARAMETERS_V2, Normal OID'dir ve RSSv1'de işlenen OID_GEN_RECEIVE_SCALE_PARAMETERS OID ile aynı şekilde işlenir. Bu OID, NDIS 6.80'den önceki NDIS hafif filtre sürücülerine (LWFs) görünmez.
Ancak OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES, NDIS_STATUS_PENDING'i döndüremeyen Eşzamanlı OID. Bu OID, OID'nin kaynağı olan işlemci bağlamında yürütülmeli ve tamamlanmalıdır. OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 gibi, NDIS 6.80 öncesindeki NDIS LWF'lerine de görünmez. NDIS 6.80 ve sonraki sürümlerdeki LWF'lerin bu OID'yi geciktirmesi veya başka bir işlemciye geçmesine izin verilmez. Yükü, her biri ölçeklenebilir bir birimin tek bir ITE'sini farklı bir hedef CPU'ya taşıma komutu içeren basit "ITE taşıma" eylemleri dizisi içerir. Dizinin öğeleri farklı ölçeklendirme varlıklarına (VPort' lar) başvurabilir.
Her NDIS sürücüsü, miniport, filtre ve protokol türü, Zaman Uyumlu OID istek arabirimini desteklemek için giriş noktalarına sahiptir:
| NDIS sürücü türü | Zaman uyumlu OID işleyicileri | Eşzamanlı OID'leri başlatan işlev |
|---|---|---|
| Miniport | MiniportSynchronousOidRequest | Uygulanamaz |
| Filtre | NdisFSynchronousOidRequest | |
| Protokol | Uygulanamaz | NdisSynchronousOidRequest |
RSS durum geçişleri, ITE güncelleştirmeleri ve birincil/varsayılan işlemciler
Direksiyon parametreleri
RSSv2'de, RSS durumuna (etkin veya devre dışı) bağlı olarak trafiği doğru CPU'ya yönlendirmek için farklı parametreler kullanılır. RSS devre dışı bırakıldığında trafiği yönlendirmek için yalnızca birincil işlemci kullanılır. RSS etkinleştirildiğinde, trafiği yönlendirmek için hem varsayılan işlemci hem de tüm ITE'ler kullanılır. Bu direksiyon parametreleri "aktif" veya "pasif" olarak etiketlenmiş, aşağıdaki tabloda özetlenmiştir.
| Direksiyon parametresi | RSS devre dışı | RSS etkinleştirildi |
|---|---|---|
| Birincil işlemci | Etkin | Etkisiz |
| Varsayılan işlemci | Etkisiz | Etkin |
| ITE[0..N] | Etkisiz | Etkin |
Bir direksiyon parametresi etkin durumunda olduğunda trafiği yönlendirir. Bir RSS durum geçişi bir parametreyi devre dışı bıraktığı andan itibaren, miniport sürücülerinin ters geçişle parametrenin tekrar etkinleştirilmesine kadar parametredeki değişiklikleri izlemesi gerekir. RSS bu ölçeklendirme varlığı için devre dışı bırakıldığında, bir miniport sürücüsünün varsayılan işlemci ve yönlendirme tablosu girişlerindeki tüm güncellemeleri izlemesi gerektiği anlamına gelir. RSS etkinleştirildiğinde, varsayılan işlemci ve dolaylı tablo için mevcut izleme durumu devreye girmelidir.
Örneğin, yazılım vRSS'nin zaten etkin olduğu senaryoyu göz önünde bulundurun. Bu durumda, dolaylı tablo üst katman protokolünde zaten var ve üst katmanın yazılım yayma kodu tarafından etkin olarak kullanılır. Donanım RSS etkinleştirmesi sırasında, dolaylılık tablosu girişlerinin taşınmasına yönelik güncelleştirmeler donanıma verilmeden ve donanım tarafından uygulanmadan önce tüm girişler birincil işlemciyi işaret etmeye başlarsa, birincil işlemci kısa bir gecikmeyle karşılaşabilir. Miniport sürücüsü varsayılan işlemciyi ve ITE bilgilerini izlemişse, trafiği üst katman tarafından zaten beklenen yere yönlendirebilir.
Miniport sürücülerinin etkin olmayan direksiyon parametrelerine yönelik tüm güncelleştirmeleri izlemesi gerekirken, RSS durum değişikliği bu parametreleri etkin yapmaya çalışana kadar bu parametrelerin doğrulanması ertelenmelidir. Örneğin, donanım RSS devre dışıyken yazılım yayılması durumunda, üst katman protokolleri yaymak için herhangi bir işlemciyi kullanabilir (bağdaştırıcının RSS kümesi dışında da dahil). Üst katmanlar, RSS durum geçişi sırasında tüm etkin olmayan parametrelerinin yeni RSS durumu için geçerli olmasını sağlar. Ancak, miniport sürücüsü yine de parametreleri doğrulamalı ve izlenen 'in etkin olmayan direksiyon parametreleri geçersizse, RSS durum geçişini başarısız yapmalıdır.
İlk durum ve yönlendirme parametreleri için güncelleştirmeler
Aşağıdaki tabloda, ölçeklendirme varlığının oluşturmadan sonraki ilk durumu (örneğin, VPort oluşturulduktan sonra) ve parametrelerin nasıl güncelleştirilebileceği açıklanmaktadır:
| Parametre | Açıklama |
|---|---|
| Birincil işlemci |
|
| Varsayılan işlemci |
|
| Dolaylı Yönlendirme Tablosu |
|
ITE'lerde ve birincil/varsayılan işlemcilerde yapılan güncelleştirmeler (OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES kullanılarak) ilgili girişin şu anda işaret ettiği işlemciden çağrılır. Belirli bir VPort için, üst katman, ITE'leri taşımak veya birincil/varsayılan işlemcileri ayarlamak amacıyla OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID'lerin bu durumlarda verilmemesini sağlar.
- OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 devam ederken.
- VPort silme işlemi başlatıldığında. Örneğin üst katman, küme filtresi OID'sini yalnızca ITE'leri taşımak için son OID tamamlandıktan sonra oluşturur.
RSS devre dışı bırakma
RSS devre dışı bırakma sırasında üst katman protokolü tüm ITE'leri birincil işlemciye yönlendirmeyi, ardından RSS'yi devre dışı bırakmak için OID'yi vermeyi veya dolaylı tabloyu as-is bırakmayı ve RSS'yi devre dışı bırakmayı seçebilir. Her iki durumda da alma trafiğinin birincil işlemciyi hedeflemesi gerekir.
RSSv2, rssv1'den üst katman protokollerinin önce RSS'yi devre dışı bırakmadan bir VPort'u silmesine izin veren bir gereksinim tutar. Üst katman, VPort üzerindeki alma filtresini sıfır olarak ayarlayabilir, böylece VPort üzerinden trafik akışı almadığından emin olabilir, ardından RSS'yi devre dışı bırakmadan VPort silme işlemine devam edebilir. Üst katman, VPort silme işlemi sırasında veya sonrasında OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID'lerinin yürürlüğe konulmayacağını garanti eder.
Hem RSS devre dışı bırakma hem de VPort silme işlemi sırasında, miniport sürücüsünün önceki kuyruk taşımaları nedeniyle mevcut olabilecek bekleyen iç işlemleri gerçekleştirmesi gerekir.
RSSv2 değişmezler
Üst katman protokolü, yönetim işlevlerini veya ITE taşımalarını gerçekleştirmeden önce önemli sabit değerlerin ihlal edilmemesini sağlar. Örneğin:
- Üst katman, kuyruk sayısını azaltmadan önce, indirection tablosunun bir VPort için yeni kuyruk sayısından daha fazla işlemciye referansta bulunmamasını sağlar.
- Üst katman, bir VPort için şu anda yapılandırılmış olan kuyruk sayısını ihlal eden bir dolaylı tablo güncelleştirmesi istememelidir. Miniport sürücüsü bu kuralı uygulamalıdır ve bir hata iletisi döndürmelidir.
- VMMQ-RESTRICTED bağdaştırıcıları için dolaylı tablo girdilerinin sayısını değiştirmeden önce üst katman, dolaylı tablonun içeriğinin 2'nin gücüne göre normalleştirilmesini sağlar.
İlgili bağlantılar
OID_GEN_RECEIVE_SCALE_PARAMETERS_V2