You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* the first argument is the request to the monitoring subsystem:
37
+
* 第一个参数是对监视子系统的请求:
43
38
44
39
* ``TRACER_ADD_PROCESS``
45
40
* ``TRACER_REMOVE_PROCESS``
46
41
47
-
* the second argument is the PID of the process for which the monitoring request will be executed
42
+
* 第二个参数是要执行监视请求的进程的 PID
48
43
49
-
In order to create a char device with major `10` you will need to use the `miscdevice <https://elixir.bootlin.com/linux/latest/source/include/linux/miscdevice.h>`__ interface in the kernel.
50
-
Definitions of related macros can be found in the `tracer.h header <https://gitlab.cs.pub.ro/so2/1-tracer/-/blob/master/src/tracer.h>`__.
* a ``kretprobe`` will be used, which will retain the amount of memory allocated and the address of the allocated memory area.
56
-
* the ``.entry_handler`` and ``.handler`` fields in the ``kretprobe`` structure will be used to retain information about the amount of memory allocated and the address from which the allocated memory starts.
It is mandatory to start the implementation of the assignment from the code skeleton found in the `src <https://gitlab.cs.pub.ro/so2/1-tracer/-/tree/master/src>`__ directory.
113
-
There is only one header in the skeleton called `tracer.h <https://gitlab.cs.pub.ro/so2/1-tracer/-/blob/master/src/tracer.h>`__.
114
-
You will provide the rest of the implementation. You can add as many `*.c`` sources and additional `*.h`` headers.
115
-
You should also provide a Kbuild file that will compile the kernel module called `tracer.ko`.
116
-
Follow the instructions in the `README.md file <https://gitlab.cs.pub.ro/so2/1-tracer/-/blob/master/README.md>`__ of the `assignment's repo <https://gitlab.cs.pub.ro/so2/1-tracer>`__.
* *-2*: missing of proper disposal of resources (``kretprobes``, entries in ``/proc``)
156
-
* *-2*: data synchronization issues for data used by multiple executing instances (e.g. the list/hashtable)
129
+
* *-2*:未正确释放资源 (``kretprobes``, ``/proc`` 中的条目)
130
+
* *-2*:多个执行实例使用的数据的数据同步问题(例如,列表/哈希表)
157
131
158
-
In exceptional cases (the assigment passes the tests but it is not complying with the requirements)
159
-
and if the assigment does not pass all the tests, the grade may decrease more than mentioned above.
132
+
在特殊情况下(作业通过了测试但不符合要求),以及如果作业未全部通过测试,成绩可能会降低得更多。
160
133
161
-
Submitting the assigment
134
+
提交作业
162
135
------------------------
163
136
164
-
The assignment will be graded automatically using the `vmchecker-next <https://github.com/systems-cs-pub-ro/vmchecker-next/wiki/Student-Handbook>`__ infrastructure.
165
-
The submission will be made on moodle on the `course's page <https://curs.upb.ro/2022/course/view.php?id=5121>`__ to the related assignment.
166
-
You will find the submission details in the `README.md file <https://gitlab.cs.pub.ro/so2/1-tracer/-/blob/master/README.md>`__ of the `repo <https://gitlab.cs.pub.ro/so2/1-tracer>`__.
* `Documentation/kprobes.txt <https://www.kernel.org/doc/Documentation/kprobes.txt>`__ - description of the ``kprobes`` subsystem from Linux kernel sources.
173
-
* `samples/kprobes/ <https://elixir.bootlin.com/linux/latest/source/samples/kprobes>`__ - some examples of using ``kprobes`` from Linux kernel sources.
<liclass="toctree-l4"><aclass="reference internal" href="so2/assign1-kprobe-based-tracer.html#submitting-the-assigment">Submitting the assigment</a></li>
0 commit comments