Wie "TCS_NUM" die maximale Anzahl von Threads in einer Intel® SGX bestimmt
- Setzen TCS_NUM auf 10 und TCS_POLICY in der Enklave-Konfigurationsdatei auf 1.
- Ausgeführte Anwendung mit mehr als 10 Threads.
- Die Anwendung funktionierte nicht gut und es zeigten Sich-Themen.
- Die Anwendung wurde nach der Einstellung von TCS_NUM, die auf die Anzahl der Threads abgestimmt ist, gut ausgeführt.
TCS_NUM bezeichnet die Anzahl der Thread-Steuerungsstrukturen (TCS), die für die Enklave zu zuweisen sind.
From Intel SGX Explained:Die SGX-Implementierung verwendet eine Thread-Steuerungsstruktur (TCS) für jeden logischen Prozessor, der den Code einer Enklave führt. Der Autor einer Enklave muss also mindestens so viele TCS-Instanzen bereitstellen wie die maximale Anzahl gleichzeitiger Threads, die die Enklave unterstützen soll.
Ein TCS besteht aus einem Einstiegspunkt und einem Pointer auf den State Save Area und andere Funktionen. Der Abschnitt Thread-Steuerungsstruktur im Software Development Manual von Intel liefert Details zum Inhalt des TCS.
Wenn mehr Threads als die Anzahl der TCS vorhanden sind, wissen die Threads nicht, wie sie in die Enklave gelangen, weil die TCS nicht vorhanden sind.
In der Thread-Bindungsrichtlinie finden Sie weitere Informationen zum TCS_POLICY.
TCS_NUM kann höher als die Anzahl der Prozessorkerne eingestellt werden. Das Betriebssystem verwaltet die Threadplanung.