os2sam
Legendary
Offline
Activity: 3586
Merit: 1099
Think for yourself
|
 |
November 09, 2013, 12:55:28 AM |
|
Seriously, though, mining BTC is dead
The price of Bitcoin reflects that too, right?
|
A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?
|
|
|
|
sharky112065
|
 |
November 09, 2013, 12:58:27 AM |
|
"The needs of the many outweigh the needs of the few or the one."
He is not getting any substantial donations to maintain the scrypt code and GPU mining is pretty much dead.
It is the correct decision IMO.
Are you seriously suggesting that nobody is mining altcoins? Just because GPU mining BTC isn't profitable doesn't mean shit. Hell, even with the drop in price, Litecoin mining can still net you a couple hundred a month with just two GPUs. Also, don't many ASIC miner rigs come with their own built-in mining software? Anyway, I highly doubt that maintaining and even tweaking scrypt support that is only a thousand lines of code is so arduous as to require substantial donations, but that is his choice. Someone will pick up the slack. I did not say or suggest that "nobody is mining altcoins". GPU mining for Bitcoins is dead. If you still want to mine altcoions then do so by using an older version that works. As for your question about ASIC hardware coming with their own built-in software the answer is no. Most do not have built-in mining software, which you could have found out with a little reading here on the forum. If you want changes to the code, use an older version and modify it yourself or maybe someone will pick it up and maintain a fork. I'm guessing you have profited much more than you have donated. If that is the case, then you really don't have a leg to stand on here and your getting way more than you paid for. Please continue on with your temper tantrum. It is most entertaining to read.
|
Donations welcome: 12KaKtrK52iQjPdtsJq7fJ7smC32tXWbWr
|
|
|
|
Notanon
|
 |
November 09, 2013, 08:46:41 AM |
|
"The needs of the many outweigh the needs of the few or the one."
He is not getting any substantial donations to maintain the scrypt code and GPU mining is pretty much dead.
It is the correct decision IMO.
Are you seriously suggesting that nobody is mining altcoins? Just because GPU mining BTC isn't profitable doesn't mean shit. Hell, even with the drop in price, Litecoin mining can still net you a couple hundred a month with just two GPUs. Also, don't many ASIC miner rigs come with their own built-in mining software? Anyway, I highly doubt that maintaining and even tweaking scrypt support that is only a thousand lines of code is so arduous as to require substantial donations, but that is his choice. Someone will pick up the slack. cbuchner1 has his own CUDAminer for nVidia cards at the moment, so it wouldn't be too much of stretch for someone else to do a dedicated miner for AMD cards that is more optimised for them rather than a catch-all program like cgminer. I also imagine once the Scrypt FPGA miners start being released soon, more attention might given to developing dedicated scrypt miners for them as well. Personally, I'm waiting on the development of a USB stick scrypt miner that I saw in another thread somewhere, so I don't have to run my PC 24/7 and could possibly delegate to my Raspberry Pi.
|
|
|
|
|
loshia
Legendary
Offline
Activity: 1610
Merit: 1000
|
 |
November 09, 2013, 11:58:35 AM |
|
Hello
I do think that this piece of code can create dead locks we are waiting to be awaken pthread_cond_wait holding lock mutex_lock(stgd_lock);
mutex_lock(stgd_lock); ts = __total_staged();
if (!pool_localgen(cp) && !ts && !opt_fail_only) lagging = true;
/* Wait until hash_pop tells us we need to create more work */ if (ts > max_staged) { pthread_cond_wait(&gws_cond, stgd_lock); ts = __total_staged(); } mutex_unlock(stgd_lock);
From the other side wake_gws needs same lock and so on and so on....Con please take a look at it when you can
static void wake_gws(void) { mutex_lock(stgd_lock); pthread_cond_signal(&gws_cond); mutex_unlock(stgd_lock); }
A quick fix might be
mutex_lock(stgd_lock); ts = __total_staged(); mutex_unlock(stgd_lock);
if (!pool_localgen(cp) && !ts && !opt_fail_only) lagging = true;
/* Wait until hash_pop tells us we need to create more work */ if (ts > max_staged) { pthread_cond_wait(&gws_cond, stgd_lock); mutex_lock(stgd_lock); ts = __total_staged(); mutex_unlock(stgd_lock);
}
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4606
Merit: 1701
Ruu \o/
|
 |
November 09, 2013, 12:03:22 PM |
|
Hello
I do think that this piece of code can create dead locks we are waiting to be awaken pthread_cond_wait holding lock mutex_lock(stgd_lock);
mutex_lock(stgd_lock); ts = __total_staged();
if (!pool_localgen(cp) && !ts && !opt_fail_only) lagging = true;
/* Wait until hash_pop tells us we need to create more work */ if (ts > max_staged) { pthread_cond_wait(&gws_cond, stgd_lock); ts = __total_staged(); } mutex_unlock(stgd_lock);
From the other side wake_gws needs same lock and so on and so on....Con please take a look at it when you can
static void wake_gws(void) { mutex_lock(stgd_lock); pthread_cond_signal(&gws_cond); mutex_unlock(stgd_lock); }
A quick fix might be
mutex_lock(stgd_lock); ts = __total_staged(); mutex_unlock(stgd_lock);
if (!pool_localgen(cp) && !ts && !opt_fail_only) lagging = true;
/* Wait until hash_pop tells us we need to create more work */ if (ts > max_staged) { pthread_cond_wait(&gws_cond, stgd_lock); mutex_lock(stgd_lock); ts = __total_staged(); mutex_unlock(stgd_lock);
}
I appreciate you looking over the code, however I guess you don't understand that pthread_cond_wait DROPS the mutex lock associated with it. You are supposed to called a pthread conditional wait holding a mutex lock and it picks up the lock again when the conditional or timeout is over.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
loshia
Legendary
Offline
Activity: 1610
Merit: 1000
|
 |
November 09, 2013, 12:08:00 PM |
|
Yues i guess i do not understand the details but with latest git i am experiencing deadlocks applog(LOG_WARNING, "Waiting for work to be available from pools."); and everything is freezing If i find out the reason i will let you know but something is not right PS- Why did you disable Avalon lock lately - commit c3f13369961a7be6b19fe838ac4b5a7bc8592b16? If everything is ok the lock shall be ok also. Anyway Thank you Hello
I do think that this piece of code can create dead locks we are waiting to be awaken pthread_cond_wait holding lock mutex_lock(stgd_lock);
mutex_lock(stgd_lock); ts = __total_staged();
if (!pool_localgen(cp) && !ts && !opt_fail_only) lagging = true;
/* Wait until hash_pop tells us we need to create more work */ if (ts > max_staged) { pthread_cond_wait(&gws_cond, stgd_lock); ts = __total_staged(); } mutex_unlock(stgd_lock);
From the other side wake_gws needs same lock and so on and so on....Con please take a look at it when you can
static void wake_gws(void) { mutex_lock(stgd_lock); pthread_cond_signal(&gws_cond); mutex_unlock(stgd_lock); }
A quick fix might be
mutex_lock(stgd_lock); ts = __total_staged(); mutex_unlock(stgd_lock);
if (!pool_localgen(cp) && !ts && !opt_fail_only) lagging = true;
/* Wait until hash_pop tells us we need to create more work */ if (ts > max_staged) { pthread_cond_wait(&gws_cond, stgd_lock); mutex_lock(stgd_lock); ts = __total_staged(); mutex_unlock(stgd_lock);
}
I appreciate you looking over the code, however I guess you don't understand that pthread_cond_wait DROPS the mutex lock associated with it. You are supposed to called a pthread conditional wait holding a mutex lock and it picks up the lock again when the conditional or timeout is over.
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4606
Merit: 1701
Ruu \o/
|
 |
November 09, 2013, 12:11:22 PM |
|
PS- Why did you disable Avalon lock lately? If everything is ok the lock shall be ok also.
Everything was not okay with the avalon. There are recursive locks called in a different order from the async flush code and the avalon code. Recursive locks in a different order cause deadlocks. If you are having deadlocks then perhaps you have a hardware driver with a similar problem. The one I have not been able to fully audit so far is the klondike driver which may be prone to the same problem.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
loshia
Legendary
Offline
Activity: 1610
Merit: 1000
|
 |
November 09, 2013, 12:13:20 PM |
|
PS- Why did you disable Avalon lock lately? If everything is ok the lock shall be ok also.
Everything was not okay with the avalon. There are recursive locks called in a different order from the async flush code and the avalon code. Recursive locks in a different order cause deadlocks. If you are having deadlocks then perhaps you have a hardware driver with a similar problem. The one I have not been able to fully audit so far is the klondike driver which may be prone to the same problem. Thank you con!!!! You do not mind to spam the thread now and then do you? I am finding bugs from time to times  I am joking..Thank you very much Best
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4606
Merit: 1701
Ruu \o/
|
 |
November 09, 2013, 12:18:12 PM |
|
PS- Why did you disable Avalon lock lately? If everything is ok the lock shall be ok also.
Everything was not okay with the avalon. There are recursive locks called in a different order from the async flush code and the avalon code. Recursive locks in a different order cause deadlocks. If you are having deadlocks then perhaps you have a hardware driver with a similar problem. The one I have not been able to fully audit so far is the klondike driver which may be prone to the same problem. Thank you con!!!! You do not mind to spam the thread now and then do you? I am finding bugs from time to times  I am joking..Thank you very much Absolutely do not mind at all. People auditing code is rare, and reporting meaningful bugs is the key to fixing them. What hardware do you have anyway, if you are having deadlock problems? By the way, if you can reliably reproduce what appears to be a deadlock, make sure you have the absolute latest git, edit miner.h to enable LOCK_TRACKING change line 765 #define LOCK_TRACKING 0
to #define LOCK_TRACKING 1
and start cgminer logging the output and with the API enabled with for example the following extra options: --api-listen --api-allow "W:127.0.0.1" 2>log.txt
and when you see a deadlock send the command to get a summary of the lock status with java API lockstats
This should spew extra information into the logging file you generated called log.txt which will allow me to see how the deadlock was caused.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
loshia
Legendary
Offline
Activity: 1610
Merit: 1000
|
 |
November 09, 2013, 12:23:11 PM |
|
PS- Why did you disable Avalon lock lately? If everything is ok the lock shall be ok also.
Everything was not okay with the avalon. There are recursive locks called in a different order from the async flush code and the avalon code. Recursive locks in a different order cause deadlocks. If you are having deadlocks then perhaps you have a hardware driver with a similar problem. The one I have not been able to fully audit so far is the klondike driver which may be prone to the same problem. Thank you con!!!! You do not mind to spam the thread now and then do you? I am finding bugs from time to times  I am joking..Thank you very much Absolutely do not mind at all. People auditing code is rare, and reporting meaningful bugs is the key to fixing them. What hardware do you have anyway, if you are having deadlock problems? By the way, if you can reliably reproduce what appears to be a deadlock, make sure you have the absolute latest git, edit miner.h to enable LOCK_TRACKING change line 765 #define LOCK_TRACKING 0
to #define LOCK_TRACKING 1
and start cgminer logging the output and with the API enabled with for example the following extra options: --api-listen --api-allow "W:127.0.0.1" 2>log.txt
and when you see a deadlock send the command to get a summary of the lock status with java API lockstats
This should spew extra information into the logging file you generated called log.txt which will allow me to see how the deadlock was caused. Thank You! I will do as suggested. I do have HEX16A. And i am playing with them for the moment I will let you know if i find out what happens related to your code as long hex16 is not pushed to your git ... Best
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4606
Merit: 1701
Ruu \o/
|
 |
November 09, 2013, 12:24:25 PM |
|
I will do as suggested. I do have HEX16A. And i am playing with them for the moment
I will let you know if i find out what happens related to your code as long hex16 is not pushed to your git ...
Ah in that case, make sure your report your bug to the hex16 maintainer, not me since it's not cgminer code.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
loshia
Legendary
Offline
Activity: 1610
Merit: 1000
|
 |
November 09, 2013, 02:48:12 PM |
|
I will do as suggested. I do have HEX16A. And i am playing with them for the moment
I will let you know if i find out what happens related to your code as long hex16 is not pushed to your git ...
Ah in that case, make sure your report your bug to the hex16 maintainer, not me since it's not cgminer code. Con, I will try to filter out bugs and report the ones which are related to your code only
|
|
|
|
os2sam
Legendary
Offline
Activity: 3586
Merit: 1099
Think for yourself
|
 |
November 09, 2013, 03:05:42 PM |
|
I have two block erupters that are producing about a Ths for me. That would be great if weren't a Ths of Hardware errors. I have seen others report very high hash rates for BE's but I don't remember what the consensus was. Is this a BE, Hub or CGMiner issue? Any insight would be appreciated. Sam
|
A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?
|
|
|
|
ScaryHash
|
 |
November 09, 2013, 03:09:15 PM |
|
I have a USB driver question (not a complaint). Have you changed any USB driver components between 3.6.4 and 3.7.2? Because all of a sudden, I cannot for the life of me get CGminer 3.7.2 to work with my USB block erupters at all, while going thru Anker USB hubs (I have two hubs, none of them wants to work with CGminer 3.7.2). If I reboot, and start up CGminer 3.6.4, same machine, different CGminers in different directories, 3.6.4 works fine. I start up 3.7.2, no AMUs get recognized thru the hub. The only way they get recognized by CGminer 3.7.2 is if I plug them into the computer's usb ports directly. The Anker hubs are USB 3.0 hubs, so it seems like there is some kind of issue when going from USB 2.0 to USB 3.0., either with CGminer or the Anker hubs. This is a pure Linux Mint 14 machine, AMD processor, with the each version of CGminer compiled using --enable-icarus --enable-klondike --no-gpu --disable-opencl I don't remember what the flags were for each compile (I think I have them written down somewhere), but the earlier version had a different set...I'm guessing that's important? (I think I loaded libtool, libncurses-dev yasm curl , for the 3.6.4 compilation, but not for the 3.7.2 compilation). The 3.7.2 compile I just did cd cgminer chmod +x ./autogen.sh ./autogen.sh ./configure --enable-icarus --enable-klondike --no-gpu --disable-opencl make Version 3.6.4 used to also recognized Klondikes going thru the Anker hub, but it does not anymore under 3.7.2. Both icarus and klondikes work fine when plugged directly into the usb ports under 3.6.4. Weird, isn't it?  Any thoughts would be greatly appreciated. Thank you for all your work on this.
|
|
|
|
|
disclaimer201
Legendary
Offline
Activity: 1526
Merit: 1001
|
 |
November 09, 2013, 03:33:39 PM |
|
Any support for hashbusters nano in the pipe? Then I could get rid of the virtualbox. Cheers.
|
|
|
|
|
Sampey
Legendary
Offline
Activity: 2632
Merit: 1040
|
 |
November 09, 2013, 08:07:36 PM |
|
Hi, i've a problem and i hope i'll be able to explain.
- Windows 7 - Bitburner fury running with Zadig Driver - If i Plug the Usb Hub with USB Asic Erupter the Bitburner stops to work and i must reinstall all drivers.
There's a way to run Bitburner Fury + Usb Asic Erupter at the same time?
Thank you so much.
|
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4606
Merit: 1701
Ruu \o/
|
 |
November 09, 2013, 08:49:21 PM |
|
I have two block erupters that are producing about a Ths for me. That would be great if weren't a Ths of Hardware errors. I have seen others report very high hash rates for BE's but I don't remember what the consensus was. Is this a BE, Hub or CGMiner issue? Any insight would be appreciated. Sam
It normally takes a 335MH device ~12.8 seconds to check all nonces in a single work item. The BEs use the icarus protocol which means as soon as they find a result, they report it back and then stop working. This can happen anywhere between zero and 12.8 seconds. The driver then gives it more work and the cycle starts all over again. If you can imagine the device coming back with a "result" in say .1 second and does this every time, the driver probably thinks it's running at a terrahash. However if it's a wrong result most of the time, it's meaningless. The driver shouldn't really be reporting it back as 1TH then so it's a mistake in the calculation in the driver. Kano might want to chime in since he wrote most of the driver.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
kano
Legendary
Offline
Activity: 4746
Merit: 1908
Linux since 1997 RedHat 4
|
 |
November 09, 2013, 08:57:16 PM |
|
I have two block erupters that are producing about a Ths for me. That would be great if weren't a Ths of Hardware errors. I have seen others report very high hash rates for BE's but I don't remember what the consensus was. Is this a BE, Hub or CGMiner issue? Any insight would be appreciated. Sam
It normally takes a 335MH device ~12.8 seconds to check all nonces in a single work item. The BEs use the icarus protocol which means as soon as they find a result, they report it back and then stop working. This can happen anywhere between zero and 12.8 seconds. The driver then gives it more work and the cycle starts all over again. If you can imagine the device coming back with a "result" in say .1 second and does this every time, the driver probably thinks it's running at a terrahash. However if it's a wrong result most of the time, it's meaningless. The driver shouldn't really be reporting it back as 1TH then so it's a mistake in the calculation in the driver. Kano might want to chime in since he wrote most of the driver. This happens when you use the timing option (short or long) and the documentation reference in FPGA-README is: 'short' or 'long' mode should only be used on a computer that has enough CPU available to run cgminer without any CPU delays (an active desktop or swapping computer would not be stable enough) Any CPU delays while calculating the hash time will affect the result 'short' mode only requires the computer to be stable until it has completed ~315 difficulty 1 shares 'long' mode requires it to always be stable to ensure accuracy, however, over time it continually corrects itself
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4606
Merit: 1701
Ruu \o/
|
 |
November 09, 2013, 08:57:55 PM Last edit: November 09, 2013, 09:20:44 PM by ckolivas |
|
I have a USB driver question (not a complaint). Have you changed any USB driver components between 3.6.4 and 3.7.2? Because all of a sudden, I cannot for the life of me get CGminer 3.7.2 to work with my USB block erupters at all, while going thru Anker USB hubs (I have two hubs, none of them wants to work with CGminer 3.7.2). If I reboot, and start up CGminer 3.6.4, same machine, different CGminers in different directories, 3.6.4 works fine. I start up 3.7.2, no AMUs get recognized thru the hub. The only way they get recognized by CGminer 3.7.2 is if I plug them into the computer's usb ports directly. The Anker hubs are USB 3.0 hubs, so it seems like there is some kind of issue when going from USB 2.0 to USB 3.0., either with CGminer or the Anker hubs. This is a pure Linux Mint 14 machine, AMD processor, with the each version of CGminer compiled using --enable-icarus --enable-klondike --no-gpu --disable-opencl I don't remember what the flags were for each compile (I think I have them written down somewhere), but the earlier version had a different set...I'm guessing that's important? (I think I loaded libtool, libncurses-dev yasm curl , for the 3.6.4 compilation, but not for the 3.7.2 compilation). The 3.7.2 compile I just did cd cgminer chmod +x ./autogen.sh ./autogen.sh ./configure --enable-icarus --enable-klondike --no-gpu --disable-opencl make Version 3.6.4 used to also recognized Klondikes going thru the Anker hub, but it does not anymore under 3.7.2. Both icarus and klondikes work fine when plugged directly into the usb ports under 3.6.4. Weird, isn't it?  Any thoughts would be greatly appreciated. Thank you for all your work on this. I have heard of issues with USB3 and libusb but this is the first before and after type report like this so it could be helpful for us to find out why. If you're building it yourself from git, can you do a bisect to find when it started? Here is how to do it from 3.6.4 to 3.7.2: git checkout v3.7.2 git bisect start git bisect bad git bisect good v3.6.4
Then it will find halfway points between them and you can rebuild it each time to and report back to git git bisect bad If it doesn't detect the devices or git bisect good if it does. If for some reason one of the steps along the way doesn't build or crashes or hangs or something else due to being in a dodgy commit, just skip it with git bisect skip When it's all over git should report to you something like "The first offending commit is XXXX" and you can report that one back to me here. Once it's over you can reset your git tree back to normal with git bisect reset
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4606
Merit: 1701
Ruu \o/
|
 |
November 09, 2013, 08:58:45 PM |
|
I have two block erupters that are producing about a Ths for me. That would be great if weren't a Ths of Hardware errors. I have seen others report very high hash rates for BE's but I don't remember what the consensus was. Is this a BE, Hub or CGMiner issue? Any insight would be appreciated. Sam
It normally takes a 335MH device ~12.8 seconds to check all nonces in a single work item. The BEs use the icarus protocol which means as soon as they find a result, they report it back and then stop working. This can happen anywhere between zero and 12.8 seconds. The driver then gives it more work and the cycle starts all over again. If you can imagine the device coming back with a "result" in say .1 second and does this every time, the driver probably thinks it's running at a terrahash. However if it's a wrong result most of the time, it's meaningless. The driver shouldn't really be reporting it back as 1TH then so it's a mistake in the calculation in the driver. Kano might want to chime in since he wrote most of the driver. This happens when you use the timing option (short or long) and the documentation reference in FPGA-README is: 'short' or 'long' mode should only be used on a computer that has enough CPU available to run cgminer without any CPU delays (an active desktop or swapping computer would not be stable enough) Any CPU delays while calculating the hash time will affect the result 'short' mode only requires the computer to be stable until it has completed ~315 difficulty 1 shares 'long' mode requires it to always be stable to ensure accuracy, however, over time it continually corrects itself
TL;DR - Don't use a timing option any more.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
|