vDSO (u objeto virtual dinámico compartido) de Linux es «una pequeña biblioteca compartida que el kernel asigna automáticamente al espacio de direcciones de todas las aplicaciones del espacio de usuario», según su hombre Página. «Algunas llamadas al sistema proporcionadas por el núcleo terminan siendo utilizadas con tanta frecuencia por el código del espacio de usuario que dichas llamadas pueden dominar el rendimiento general… debido a la frecuencia de las llamadas y la sobrecarga de cambio de contexto resultante que sale del espacio de usuario y entra al núcleo».
Pero Linus Torvalds tuvo mucho que decir sobre el plan propuesto. obtener un número aleatorio() mejora, Informe Filonix:
este obtener un número aleatorio() El esfuerzo de vDSO ha pasado por más de 20 rondas de revisión en los últimos 2+ años, pero… Torvalds pasó algún tiempo durante el Día de la Independencia argumentando los méritos del parche en la lista de correo de Linux Core. Torvalds empezar con la escritura:
Nadie me ha explicado qué ha cambiado desde el último vdso getrandom y no tengo planes de cancelarlo a menos que se solucione este defecto fundamental. ¿Por qué es tan importante que se necesite vdso? ¿Por qué el espacio de usuario no lo hace solo? ¿Qué tiene de mágico todo esto?
Todo todavía me parece inútil porque se trata de optimizar cosas que a nadie parece importarle, agregar nueva infraestructura de máquinas virtuales, nuevas llamadas mágicas al sistema, yadda yadda. La última vez fui muy escéptico y no ha cambiado absolutamente nada. Simplemente no entiendo por qué de repente vuelve a ser tan importante. No agregamos cosas «sólo porque podemos». Necesitamos tener una muy buena razón. Todavía no entiendo por qué y ni siquiera he visto a nadie intentar explicar por qué.
y luego Se respondió a sí mismo, añadiendo:
En otras palabras, me gustaría ver *usuarios* reales interviniendo y diciendo «aquí hay un problema, aquí está mi carga real, pasa el 10% del tiempo en getrandom(), esto lo soluciona». No me interesan en absoluto los microbenchmarks ni la teoría «si el usuario necesita números aleatorios de alto rendimiento». Necesito que un usuario real diga «No puedo usar rdrand mezclado con mi propio chacha» y explique por qué es tan importante exponer el chachacha SSE2 como un vdso en el código del kernel y por el núcleo.
Torvalds también Añadir al tercer mensaje:
Una última nota: la razón por la que soy tan negativo acerca de todo esto es que el subsistema de números aleatorios tiene una historia absolutamente terrible de dos cuestiones conflictivas importantes: por un lado, la gente quiere números aleatorios razonablemente utilizables y, por otro lado, la gente debate qué Los números aleatorios son. Para ser honesto, no quiero que el núcleo se quede atrapado en medio de un pantano «más»…
Torvalds hizo comentarios adicionales. («Esto huele. Esto no tiene sentido….») Abogar por el cambio Según Jason Donenfeld, desarrollador de WiredGuard, se produjo más comunicación (y continúa ocurriendo… 40 mensajes y contando).
En un momento, la discusión derivó en que Torvalds dijera: «Bah. Supongo que tendré que mirar la serie de parches nuevamente. Todavía no estoy interesado en ella. Pero lo intentaré de nuevo…»