Opciones de rastreo de jVerbs (solo Linux)
Puede rastrear las llamadas de tiempo de ejecución de jVerbs en el nivel nativo mediante las opciones de rastreo estándar, incluido el envío de la salida de rastreo a un archivo.
Nota:
La implementación RDMA, que anteriormente estaba obsoleta se elimina de IBM® SDK, Java™ Technology Edition, Version 8.
La implementación RDMA, que anteriormente estaba obsoleta se elimina de IBM® SDK, Java™ Technology Edition, Version 8.
Se suministra una implementación nativa de la interfaz de jVerbs. Cada llamada Java de la aplicación realiza una llamada nativa a las bibliotecas rdmacm o ibverbs , para realizar operaciones de acceso directo a memoria remota (RDMA) utilizando la interfaz nativa Java (JNI). Las llamadas Java se direccionan a la capa nativa mediante clases de asignador nativas internas.
Puede rastrear llamadas de método Java y llamadas de método nativo.
Rastreo de llamadas de método Java
La interfaz jVerbs contiene los siguientes paquetes Java:
- com.ibm.net.rdma.jverbs.cm
- Clases de gestión de conexiones que acceden a la biblioteca de rdmacm.
- com.ibm.net.rdma.jverbs.verbs
- Clases Verbs que acceden a la biblioteca de ibverbs.
- com.ibm.net.rdma.jverbs.endpoints
- Clase de abstracción de punto final que utiliza clases de los paquetes cm y verbs.
-Xtrace:methods={com.ibm.net.rdma.jverbs.*},print=mtUtilice un patrón más específico para rastrear clases en el nivel necesario. Por ejemplo, para rastrear métodos desde todas las clases nativas de gestión de conexión, utilice la siguiente opción de línea de mandatos:-Xtrace:methods={com.ibm.net.rdma.jverbs.cm.Native*},print=mtRastreo de llamadas de método nativo
Utilice el componente de puntos de rastreo JVERBS para rastrear las llamadas de método nativo en el entorno de ejecución. Puede rastrear la entrada de métodos nativos, parámetros, salidas normales y salidas anormales con números de error. Por ejemplo:
-Xtrace:print=JVERBSEsta opción de línea de mandatos genera una salida parecida al siguiente texto:06:22:48.672 0x21b21100 JVERBS.4 > NativeRdmaCM_createEventChannel()
06:22:48.674 0x21b21100 JVERBS.5 < NativeRdmaCM_createEventChannel(channel->fd=41,
channel=00007F9A643427A0) event channel created
06:22:48.675 0x21b21100 JVERBS.7 > NativeRdmaCM_createId(channel->fd=41, rdma_ps=262)
06:22:48.675 0x21b21100 JVERBS.8 - NativeRdmaCM_createId(channel=00007F9A643427A0, rdma_ps=262) Calling
rdma_create_id
06:22:48.675 0x21b21100 JVERBS.9 < NativeRdmaCM_createId(listen_id=00007F9A6433CB20) listen id created
06:22:48.685 0x21b21100 JVERBS.18 > NativeRdmaCM_bindAddr(id=00007F9A6433CB20, address=00007F9A643415E0)
06:22:48.685 0x21b21100 JVERBS.19 - NativeRdmaCM_bindAddr(cm_listen_id=00007F9A6433CB20) Calling
rdma_bind_addr
06:22:48.685 0x21b21100 JVERBS.20 < NativeRdmaCM_bindAddr() Passed
06:22:48.685 0x21b21100 JVERBS.23 > NativeRdmaCM_listen(id=1681115936, backlog=10)
06:22:48.685 0x21b21100 JVERBS.24 - NativeRdmaCM_listen(cm_listen_id=00007F9A6433CB20) Calling rdma_listen
06:22:48.685 0x21b21100 JVERBS.25 < NativeRdmaCM_listen() Passed
06:22:48.685 0x21b21100 JVERBS.38 > NativeRdmaCM_getCmEvent(channel=41, event=00007F9A643414D0,
listen_id=00007F9A643414D4, client_id=00007F9A643414DC)
06:22:48.685 0x21b21100 JVERBS.39 - NativeRdmaCM_getCmEvent(cm_channel=00007F9A643427A0) Calling
rdma_get_cm_event
06:23:32.329 0x21b21100 JVERBS.40 < NativeRdmaCM_getCmEvent(_event=4, _client_id=00007F9A64342930,
_listen_id=00007F9A6433CB20, cm_event->id->verbs->cmd_fd=39, cm_event->id->verbs=00007F9A6433D090,
cm_event=00007F9A643427C0) Passed
06:23:32.330 0x21b21100 JVERBS.92 > NativeRdmaCM_getContext(id=00007F9A6433CB20)
06:23:32.330 0x21b21100 JVERBS.93 - NativeRdmaCM_getContext(cm_listen_id=00007F9A6433CB20)
06:23:32.330 0x21b21100 JVERBS.94 < NativeRdmaCM_getContext(context=00007F9A6433D090, context->cmd_fd=39)
PassedPuede combinar el rastreo de método nativo y Java tal como se muestra en el ejemplo siguiente:
-Xtrace:methods={com.ibm.net.rdma.jverbs.*},print=mt,print=JVERBSPara obtener más información sobre el rastreo, los componentes de rastreo y los puntos de rastreo, consulte los siguientes temas:
- -Xtrace en la documentación de usuario de OpenJ9
- Determinación del ID de punto de rastreo de un punto de rastreo en la referencia de VM J9