X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/5a4a8663668a3af89fe7c4026d08f3e0fb144f05..be058eea7bed881d4fdbc8a0a3f11f164a8c62a9:/BUGS?ds=inline diff --git a/BUGS b/BUGS index ff54efc..de42340 100644 --- a/BUGS +++ b/BUGS @@ -1,3 +1,91 @@ -./loba cluster1000.xml -N64 -L100 -i100 -a fair -T hcube -=> leads to deadlock (with stable) +======================================================================== +-- Wed, Feb 29 16:31:56 2012 +0100 +Les fonctions MSG_get_host{number,table} n'existent plus dans les +dernières versions de SimGrid. Utiliser MSG_hosts_as_dynar à la place. + +-- Tue, 06 Mar 2012 17:02:02 +0100 + +Le patch suivant corrige le problème : +--- a/hostdata.cpp ++++ b/hostdata.cpp +@@ -19,8 +19,9 @@ void hostdata::create() + using std::placeholders::_1; + using std::placeholders::_2; + +- int nhosts = MSG_get_host_number(); +- m_host_t* host_list = MSG_get_host_table(); ++ xbt_dynar_t host_dynar = MSG_hosts_as_dynar(); ++ int nhosts = xbt_dynar_length(host_dynar); ++ m_host_t* host_list = static_cast(xbt_dynar_to_array(host_dynar)); + // only sort hosts for automatically created deployment + if (opt::auto_depl::enabled) + std::sort(host_list, host_list + nhosts, + +======================================================================== +-- Wed, Feb 29 16:16:45 2012 +0100 + +Les exécutions parallèles donnent des résultats différents. +Pourquoi ? + +======================================================================== +##### MOSTLY RESOLVED BUGS COME AFTER THIS ############################# +======================================================================== +-- Mon, Feb 27 13:26:08 2012 +0100 + +Les variables globales process::total_load_* ne sont pas protégées +contre les accès concurrents. Il n'est donc pas possible actuellement +d'exécuter les simulations en parallèle (--cfg=contexts/nthreads). + +-- Wed, Feb 29 15:54:31 2012 +0100 + +Corrigé en partie. Il reste quelques "fixme: get locked?" à régler +(ou pas). + +======================================================================== +-- Fri, May 20 17:01:33 2011 +0200 + +Il faut réviser l'utilisation du mutex entre le thread d'équilibrage +et le thread de calcul. Il semble gardé beaucoup trop longtemps. + +-- Tue, May 24 14:55:59 2011 +0200 + +Bon, une partie du problème est rectifiée par le commit +48de954 Stop locking the mutex on data_receive. + +Pour le reste, je pense maintenant que ça ne gêne pas, au moins dans +le simulateur. Pour faire bien, il faudrait plus séparer les deux +threads d'équilibrage et de calcul, et faire en sorte que chacun garde +un cache des données globales partagées. Il suffirait alors de +synchroniser ces caches à chaque itération. + +Les données partagées sont essentiellement les données des voisins : +load, to_send et debt. + +======================================================================== +-- Tue, Apr 19 17:48:39 2011 +0200 + +Valgrind détecte une fuite de mémoire liée à un appel à backtrace. + +Le problème semble être indépendant de SimGrid et peut être reproduit +avec le code suivant (NB: l'équivalent, compilé avec gcc ne génère pas +d'erreur). +,---- +| #include +| #include +| int main() +| { +| void *buffer[64]; +| int size = -1; +| size = backtrace(buffer, sizeof buffer / sizeof buffer[0]); +| std::cerr << "backtrace() returned " << size << "\n"; +| } +`---- +==532== HEAP SUMMARY: +==532== in use at exit: 56 bytes in 1 blocks +==532== ... +==532== LEAK SUMMARY: +==532== ... +==532== still reachable: 56 bytes in 1 blocks + +========================================================================