• 36 odgovora
  • 13.078 pregleda
Re: Izasao 2.6.30 kernel 21.06.2009. u 16:26 · pre 211 meseci #21
Pa šta se buniš još nije final... pošalji critical bug
Potpis
SUDO is your best friend, whit him... u can do anything!
Re: Izasao 2.6.30 kernel 21.06.2009. u 19:35 · pre 211 meseci #23
Jel se neko slučajno sretao sa ovom greškom? Ne mogu ni na netu ništa da nađem...

Code:
[33555.012980] ------------[ cut here ]------------
[33555.012984] WARNING: at fs/quota/dquot.c:964 dquot_claim_space+0xc1/0x131()
[33555.012986] Hardware name: X6DH8
[33555.012989] Pid: 228, comm: pdflush Tainted: G        W  2.6.30 #1
[33555.012991] Call Trace:
[33555.012995]  [<ffffffff80452525>] ? __down_read+0x15/0x9d
[33555.012999]  [<ffffffff802b6614>] ? dquot_claim_space+0xc1/0x131
[33555.013004]  [<ffffffff80230bf0>] ? warn_slowpath_common+0x72/0x9e
[33555.013008]  [<ffffffff802b6614>] ? dquot_claim_space+0xc1/0x131
[33555.013012]  [<ffffffff802f4fec>] ? ext4_mb_mark_diskspace_used+0x33f/0x3f8
[33555.013017]  [<ffffffff802f364f>] ? ext4_mb_use_preallocated+0x195/0x1bc
[33555.013021]  [<ffffffff802f84ed>] ? ext4_mb_new_blocks+0x1c5/0x374
[33555.013026]  [<ffffffff802f115c>] ? ext4_ext_get_blocks+0xbfa/0xe0e
[33555.013031]  [<ffffffff8032410e>] ? elv_insert+0x169/0x229
[33555.013039]  [<ffffffff802e01bc>] ? ext4_get_blocks_wrap+0x110/0x289
[33555.013046]  [<ffffffff802e06c7>] ? mpage_da_map_blocks+0xb0/0x59f
[33555.013051]  [<ffffffff8025d432>] ? pagevec_lookup_tag+0x1a/0x21
[33555.013056]  [<ffffffff8025bd8d>] ? write_cache_pages+0x162/0x322
[33555.013060]  [<ffffffff802e0335>] ? ext4_normal_get_block_write+0x0/0x5a
[33555.013065]  [<ffffffff802e103e>] ? __mpage_da_writepage+0x0/0x12f
[33555.013069]  [<ffffffff802e0e3b>] ? ext4_da_writepages+0x285/0x3e7
[33555.013073]  [<ffffffff8025bf89>] ? do_writepages+0x20/0x2d
Potpis
Beneath civilization's fragile crust, cold chaos churns...
Re: Izasao 2.6.30 kernel 21.06.2009. u 21:40 · pre 211 meseci #24
Jel to dobijas pri kompajliranju ili iz dmesg-a pri boot-ovanju ili je u pitanju critical error?

Code:

/*
 * Claim reserved quota space
 */
static void dquot_claim_reserved_space(struct dquot *dquot,
                        qsize_t number)
{
    WARN_ON(dquot->dq_dqb.dqb_rsvspace < number);
    dquot->dq_dqb.dqb_curspace += number;
    dquot->dq_dqb.dqb_rsvspace -= number;
}


Ovo je funkcija zaduzena za taj warning... Proverava da li ima dovoljno prostora na disku koliko je rezervisano za quota-u i reservise je...

Jel mozes da nam objasnis pod kakvim uslovima i tacno kada ti se javlja upozorenje?

Pratio sam malo dalje ovo:

Code:

/*
 * This operation can block, but only after everything is updated
 */
int dquot_free_space(struct inode *inode, qsize_t number)
{
    unsigned int cnt;
    char warntype[MAXQUOTAS];

    /* First test before acquiring mutex - solves deadlocks when we
         * re-enter the quota code and are already holding the mutex */
    if (IS_NOQUOTA(inode)) {
out_sub:
        inode_sub_bytes(inode, number);
        return QUOTA_OK;
    }

    down_read(&sb_dqopt(inode->i_sb)->dqptr_sem);
    /* Now recheck reliably when holding dqptr_sem */
    if (IS_NOQUOTA(inode)) {
        up_read(&sb_dqopt(inode->i_sb)->dqptr_sem);
        goto out_sub;
    }
    spin_lock(&dq_data_lock);
    for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
        if (!inode->i_dquot[cnt])
            continue;
        warntype[cnt] = info_bdq_free(inode->i_dquot[cnt], number);
        dquot_decr_space(inode->i_dquot[cnt], number);
    }
    inode_sub_bytes(inode, number);
    spin_unlock(&dq_data_lock);
    /* Dirtify all the dquots - this can block when journalling */
    for (cnt = 0; cnt < MAXQUOTAS; cnt++)
        if (inode->i_dquot[cnt])
            mark_dquot_dirty(inode->i_dquot[cnt]);
    flush_warnings(inode->i_dquot, warntype);
    up_read(&sb_dqopt(inode->i_sb)->dqptr_sem);
    return QUOTA_OK;
}
EXPORT_SYMBOL(dquot_free_space);

/*
 * This operation can block, but only after everything is updated
 */
int dquot_free_inode(const struct inode *inode, qsize_t number)
{
    unsigned int cnt;
    char warntype[MAXQUOTAS];

    /* First test before acquiring mutex - solves deadlocks when we
         * re-enter the quota code and are already holding the mutex */
    if (IS_NOQUOTA(inode))
        return QUOTA_OK;

    down_read(&sb_dqopt(inode->i_sb)->dqptr_sem);
    /* Now recheck reliably when holding dqptr_sem */
    if (IS_NOQUOTA(inode)) {
        up_read(&sb_dqopt(inode->i_sb)->dqptr_sem);
        return QUOTA_OK;
    }
    spin_lock(&dq_data_lock);
    for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
        if (!inode->i_dquot[cnt])
            continue;
        warntype[cnt] = info_idq_free(inode->i_dquot[cnt], number);
        dquot_decr_inodes(inode->i_dquot[cnt], number);
    }
    spin_unlock(&dq_data_lock);
    /* Dirtify all the dquots - this can block when journalling */
    for (cnt = 0; cnt < MAXQUOTAS; cnt++)
        if (inode->i_dquot[cnt])
            mark_dquot_dirty(inode->i_dquot[cnt]);
    flush_warnings(inode->i_dquot, warntype);
    up_read(&sb_dqopt(inode->i_sb)->dqptr_sem);
    return QUOTA_OK;
}
EXPORT_SYMBOL(dquot_free_inode);


Hm, i sad nemam pojma da li je problem pri rezervisanju prostora definisane quota-om ili pri oslobadjanju quote prostora. kako kazu u komentarima ako tada filesystem obavlja journaling moze doci do blokiranja...

[Ovu poruku je menjao combuster dana 21.06.2009. u 23:11 GMT+1]
Potpis
make love - !war
Re: Izasao 2.6.30 kernel 22.06.2009. u 10:30 · pre 211 meseci #25
To vraća dmesg kad su uključene kvote i delayed allocation :-)
Nisam primjetio da je došlo do nekog gubitka podataka ili nečeg sličnog, ali mi se ne sviđa to uopšte.
Sad mi je trenutno opet isključeno delayed allocation.
Potpis
Beneath civilization's fragile crust, cold chaos churns...
Re: Izasao 2.6.30 kernel 22.06.2009. u 10:59 · pre 211 meseci #26
http://kerneltrap.org/index.ph...e/linux-ext4/2008/11/7/4017534

https://bugzilla.redhat.com/show_bug.cgi?id=490628

Heh, izgleda mi i da sam pogodio deo source-a :) (pogledaj pdf u attachment-u)

Izgleda mi da nije neki critical bug koliko je u stvari feature dok se ovo sve ne razresi, mozda to isprave skroz na skroz kroz reviziju 2.6.30 kernel-a ili ces sacekati jos dva meseca do 2.6.31. No delalloc resava stvar privremeno ali ko sto ti rece u onom thread-u o quota na debian-u srozava ti performanse jbg...
Potpis
make love - !war
Re: Izasao 2.6.30 kernel 23.06.2009. u 11:38 · pre 211 meseci #27
Koliko mo\e da se primeti ovaj kernel je jako nestabilan, zato je najbolje sacekati finalni izlazak, finalni mislim sa ispravljenim bugovima
Potpis
SUDO is your best friend, whit him... u can do anything!
Re: Izasao 2.6.30 kernel 23.06.2009. u 13:31 · pre 211 meseci #28
Pa ja sam evo na 2.6.30 od momenta kako je uploadovan na ftp.kernel.org i nijedan freeze ili nesto slicno... Jedino ovaj git17 sto sam probao kasnije pa ima bug u i915 modulu ali ispravice to valjda...
Potpis
make love - !war
Re: Izasao 2.6.30 kernel 23.06.2009. u 13:39 · pre 211 meseci #29
A koji distro koristis?
Potpis
SUDO is your best friend, whit him... u can do anything!
Re: Izasao 2.6.30 kernel 27.06.2009. u 08:54 · pre 210 meseci #31
Posto sam hteo da enable-ujem tomoyo rekoh ajde da skinem 2.6.31-rc1 i da iskompajliram kad ne lezi vraze...

KMS ne radi, tj ne mogu ni da pokrenem X, i915 ne moze da setuje mod na LVDS-u pa me baca u framebuffer rezoluciju u 800x600, samim tim ni X ne moze da se startuje jer kao i pri boot-u ne moze da setuje korektan mod...

Code:

[drm:drm_helper_initial_config] *ERROR* connectors have no modes, using standard modes
Jun 26 11:01:40 vostro kernel: allocated 800x600 fb: 0x007df000, bo ffff88007d9b3480
Jun 26 11:01:40 vostro kernel: Console: switching to colour frame buffer device 100x37
Jun 26 11:01:40 vostro kernel: [drm] LVDS-8: set mode 800x600 18


Poslao sam mail Jesse Barnes-u koji radi na razvoju intel-ovog drajvera pa mi rece da su ispravke dospele u linus-ov tree i evo sad skidam snapshot sa git-a...
Istina snimio sam da su radili na intel-ovom drajveru (intel_lvds.c je patch-ovan za korektnu detekciju lvds modova) a da li radi videcemo za koji sat...

Podneo sam bug report za ovo kao i za jos dva bug-a vezana za intelov xorg drajver, izgleda da nisu ni znali za njih koliko sam primetio po Jesse-jevom mail-u...

http://bugzilla.kernel.org/show_bug.cgi?id=13593
https://bugs.freedesktop.org/show_bug.cgi?id=22503
https://bugs.freedesktop.org/show_bug.cgi?id=22504

[update]

Ispravili su bug i ne da su ga samo ispravili nego su mi performanse x3100 skocile duplo, glxgears sa 420 na 1000fps, urban terror takodje dupliran framerate...
Sta god da rade samo neka nastave, bojiim se samo da za dva meseca za koliko ocekujem 2.6.31 imaju dosta vremena da naprave neko s***** :D

[Ovu poruku je menjao combuster dana 27.06.2009. u 11:34 GMT+1]
Potpis
make love - !war
Re: Izasao 2.6.30 kernel 27.06.2009. u 23:06 · pre 210 meseci #32
Citat:
combuster: 
Code:

/* Now recheck reliably when holding dqptr_sem */
if (IS_NOQUOTA(inode)) {
    up_read(&sb_dqopt(inode->i_sb)->dqptr_sem);
    goto out_sub;
}

Nije ni čudo što se pojavljuju bug-ovi kad još koriste goto naredbu. Mislio sam da je izbačena pre mnogo godina
Potpis
Two beer or not two beer...
Re: Izasao 2.6.30 kernel 27.06.2009. u 23:20 · pre 210 meseci #34
Jos je ona tu za one koje programiraju prljavo :) Istina goto u c-u treba da se izbegava kad god je to moguce... Zar nije lakse jednostavno pozvati funkciju sa eventualno neophodnim parametrima za prosledjivanje? Sta znas, mozda ima i ovih sto su navikli na assembler pa naletis na JNE :) Jos crnja varijanta :D
Potpis
make love - !war
Re: Izasao 2.6.30 kernel 27.06.2009. u 23:25 · pre 210 meseci #35
GOTO je prosto naredba bezuslovnog prelaska sa jednog dela koda na izvrsavanje nekog drugog,
i u samoj toj cinjenici nema nikakav problem. Problem moze nastati ako programer ima pogresan
algoritam, pa sa goto naredbom napravi neke skokove koji uzrokuju infinite loop-ove ili nesto slicno,
zast je opet odgovoran sam programer zbog toga sto on osmilja logiku koda, a ne sama naredba ;)

Ali, opet kazem, bilo koja druga naredba, neadekvatno upotrebljena, moze napraviti potpuno isto
s***** kao i goto naredba.
Potpis
oligofrenolog
Re: Izasao 2.6.30 kernel 27.06.2009. u 23:34 · pre 210 meseci #36
Pa najveci problem je upravo kao sto si i rekao kod dead loop-ova, kod struktuiranog programiranja ako skocis pomocu goto na odredjeni deo kod-a jos pogotovo prilikom ispitivanja nekog uslova (kao sto je u ovom slucaju) mozes da napravis zestoko s*****... Ali oni znaju kakav se rezultat ocekuje ispitivanjem tog uslova i moze se iskoristiti za skok na odredjeni deo kod-a sve dok se uslov ne ispuni (ili ispuni)... Uglavnom svakako da kernel developeri nisu blesavi toliko :)
Potpis
make love - !war
Re: Izasao 2.6.30 kernel 17.07.2009. u 09:29 · pre 210 meseci #37
http://bugzilla.kernel.org/show_bug.cgi?id=13593
https://bugs.freedesktop.org/show_bug.cgi?id=22503
https://bugs.freedesktop.org/show_bug.cgi?id=22504
http://bugzilla.kernel.org/show_bug.cgi?id=13712
http://bugs.freedesktop.org/show_bug.cgi?id=22766

E pa znate sta, svaka im cast, jeste da guram sad pola stvari kao git snapshot-ove ali radi sve kako treba. Uf ovako cu da guram do septembra a onda ide reinstall cele masine kad naleti 2.6.32 kernel i nadam se 2.28 GNOME i xserver 1.7...
Potpis
make love - !war
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme