<div dir="ltr">Salut,<div><br></div><div>Am observat ca atunci cand dau comanda LABS="tracer_assignment" make skels si mi se genereaza scheletul de cod pentru tema 1, la generarea sursei <b>skels/tracer_assignment/<wbr>checker/_helper/tracer_helper.<wbr>c</b> din <b>templates/tracer_assignment/<wbr>checker/_helper/tracer_helper.<wbr>c</b> sunt omise linile 74 si 81:</div><div><br></div><div><div>73 /* TODO: use tp->down for down_interruptible */</div><div>74 sema_init(&sem, 1);                    //////////////////////////////////// omisa</div><div>75 for (i = 0; i < tp->up; i++) {</div><div>76 <span style="white-space:pre-wrap"> </span>up(&sem);</div><div>77 <span style="white-space:pre-wrap">        </span>do_work();</div><div>78 <span style="white-space:pre-wrap">   </span>down_interruptible(&sem);</div><div>79 }</div><div>80 /* TODO: use to->unlock for mutex_unlock */</div><div>81 mutex_init(&lock);                       /////////////////////////////// omisa</div><div>82 for (i = 0; i < tp->lock; i++) {</div><div>83<span style="white-space:pre-wrap">       </span>mutex_lock(&lock);</div><div>84<span style="white-space:pre-wrap"> </span>do_work();</div><div>85<span style="white-space:pre-wrap">     </span>mutex_unlock(&lock);</div><div>86 }</div></div><div><br></div><div>M-am uitat in fisierul generate_skels.py si am observat ca se foloseste un regex pentru a identifica liniile marcate cu TODO si pentru a nu le mai copia pe acestea. E posibil sa fie o greseala aici ca si linia imediat urmatoare dupa TODO este omisa.</div><div><br></div><div>Observatia mea a pornit de la un kernel oops obtinut pe masina virtuala. Implementasem o functionalitate minima pentru tracer.ko si primeam la testul 6 urmatorul bug:</div><div><span style="color:rgb(51,51,51);font-family:Verdana,Arial,sans-serif;font-size:17.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">BUG: unable to handle kernel NULL pointer dereference at 00000000000000c9.</span><br></div><div><span style="color:rgb(51,51,51);font-family:Verdana,Arial,sans-serif;font-size:17.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(51,51,51);font-family:Verdana,Arial,sans-serif;font-size:17.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Era din cauza ca nu se initializau sem si lock in tracer_assignment.c din cauza omiterii celor 2 linii la generare. </span></div><div><br></div><div>Multumesc,</div><div>Relu Dragan</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div>